有一个简单的方法复制/粘贴(桌面的)剪贴板内容到EditView上的安卓模拟器?

(只是为了简化开发/测试)


当前回答

仅适用于API级别>= 24

从本地机器复制任何文本,然后简单地运行这个命令

adb shell input keyevent 279

确保在Android模拟器设置中启用剪贴板共享选项

其他回答

我的情况是,我的模拟器粘贴了我几天前复制的一些东西,而从未将最后一个东西粘贴到我笔记本电脑的当前剪贴板中。

为了解决这个问题,我让我的模拟器从冷启动而不是快速启动。

有时模拟器的剪贴板与系统剪贴板不同步。这是一个bug。

但是您可以考虑在调试模式下更改变量值的能力:https://www.jetbrains.com/help/idea/tutorial-set-value.html#solution (Android Studio基于IntelliJ IDEA,所以我希望这个链接会有帮助)

如果你的应用程序从剪贴板读取文本,你可以改变这个文本的变量值,并越过你的文本

对于Mac和Linux,在你的aliases_bash文件中尝试这个函数(位于/etc/aliases_bash中,对于Mac用户,一定要使用sudo vim /etc/aliases_bash)

function adbtx {
  userinput="$(sed 's/ /%s/g' <<< $1)"
  adb shell input text "${userinput}";
}
export -f adbtx

然后在命令行输入:

adbtx 'Your text to emulator input'

'Your text to emulator input'将在emulator text字段中输入。

向Eliot的sed替换字符串致敬。

你看过C2DM吗?Chrome2phone和fox2phone可以发送链接和剪贴板文本,并自动复制到手机上。 另外,请尝试使用adb shell。有一个服务命令(/system/bin/service)可以使用服务(服务调用剪贴板…)getClipboardText、setClipboardText和hasClipboardText的事务代码分别为1、2和3。

我通常通过telnet将我想复制的文本作为短信发送,然后从短信中复制文本。方法如下:

通过telnet连接:

telnet localhost <端口> 例如:telnet localhost 5554

(5554为默认端口。模拟器的标题栏显示了正在使用的端口,因此您可以看到它是否不同)。

发送信息:

文本格式:sms send <发件人电话号码> <消息> 示例:sms send 1231231234要发送的消息

(你可以编一个寄件人的电话号码)

这对于链接非常有效,因为消息会自动转换为一个超链接,你可以单击,而不必复制/粘贴到浏览器中。

一旦模拟器接收到消息,您就可以复制它并将其粘贴到任何您喜欢的地方。