有没有办法从VM外部复制并粘贴到Genymotion仿真器中?
答案 0 :(得分:66)
从version 2.1.0开始,可以将文本从主机复制/粘贴到虚拟设备中。 (请注意,仅仅更新Genymotion是不够的,您还必须在更新到2.1.0或更高版本后重新创建虚拟设备。)
可以通过在虚拟设备中长按/点击+ PASTE
来执行粘贴。
答案 1 :(得分:4)
由于Genymotion不支持此操作(即使您打开VirtualBox,VM的设置并设置共享剪贴板,它仍然无法使用我正在使用的Genymotion 2.0.3)
所以,我使用另一种方式,如果你的文字不是秘密,你可以使用像http://shrib.com/这样的在线笔记
将文字粘贴到那里,然后在Android VM上打开链接,复制并粘贴到您想要的位置。采取几个步骤,但如果你不想输入一个长文本(像我的,是一个很长的SQL)
答案 2 :(得分:4)
如果您的Genymotion版本支持复制/粘贴,您可以使用菜单+ C和菜单+ V进行复制/粘贴(菜单键通常在Alt和Ctrl之间,并用作鼠标右键单击)。
答案 3 :(得分:2)
前一段时间我有类似的需求。我的解决方案是编写一个快速应用程序,该应用程序侦听UDP端口并将该端口上的任何内容转储为SMS(文本)消息。 然后我从主机上用shell发送了netcat。
UDP侦听器应用代码:
package com.example.messagemyself;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import android.app.Service;
import android.content.ContentValues;
import android.net.Uri;
import android.util.Log;
public class GetUDPData extends Thread {
private static final String TAG = "GetUDPData";
private DatagramSocket datagramSocket;
private DatagramPacket packet;
boolean running = true;
Service srv;
public GetUDPData(Service s) {
srv = s;
}
public void done() {
datagramSocket.close();
running = false;
}
@Override
public void run() {
try {
datagramSocket = new DatagramSocket(4444);
datagramSocket.setSoTimeout(0);
byte[] buffer = new byte[1024];
packet = new DatagramPacket(buffer, buffer.length);
} catch (SocketException e) {
e.printStackTrace();
}
while(running) {
try {
Log.d(TAG,"Receiving");
datagramSocket.receive(packet);
String message = new String(packet.getData(),0,packet.getLength());
Log.d(TAG,"Received "+message);
ContentValues values = new ContentValues();
values.put("address", "12345");
values.put("body", message);
// Post to SMS inbox
srv.getContentResolver().insert(Uri.parse("content://sms/inbox"), values);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
在app中运行此线程(例如,您可以使用默认的hello-world); 然后发送文本消息,使用UDP的-u选项运行netcat:
echo "my message" | nc -u 192.168.56.101 4444
不要忘记在这里使用你的genymotion ip地址。
我还更进一步创建了一个python脚本,它从系统剪贴板中抓取数据并将其转储出UDP端口。这也很有用,特别是如果你想发送非ascii文本或其他东西(在我的情况下我需要发送日文字符并设置windows shell来显示这些字符是我不希望的壮举)在胆小的人心里。)
无论如何,这是脚本。将其转储到.py文件中,然后双击它以将剪贴板的内容发送到UDP套接字。
from Tkinter import Tk
r = Tk()
datatosend = r.selection_get(selection = "CLIPBOARD")
r.destroy()
import time
import socket
UDP_IP = "192.168.56.101"
UDP_PORT = 4444
print "sending SMS: %s"%datatosend
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
sock.sendto(datatosend, (UDP_IP, UDP_PORT))
time.sleep(3)
# The sleep is not necessary, but I like it since you can see the
# message for a bit before the shell exits.
答案 4 :(得分:2)
长按鼠标右下方并释放,然后粘贴
答案 5 :(得分:0)
长按鼠标右键,直到出现粘贴符号