在Android模拟器上粘贴文本
有没有办法复制/粘贴(桌面)的剪贴板内容到Android模拟器上的EditView
?
(只是为了方便开发/testing)
借助Android Emulator和x86 Google API仿真器系统映像API Level 19(Android 4.4 – Kitkat)及更高版本的v25.3.x,您只需使用鼠标或键盘从桌面复制和粘贴即可。
Android Studio 2.3发布了此function
在terminal中, adb shell input text 'my string here. With some characters escaped like \$ that'
键入adb shell input text 'my string here. With some characters escaped like \$ that'
adb shell input text 'my string here. With some characters escaped like \$ that'
请注意,在文本中包含空格的替代方法是将%s
replace为每个space
字符。
我通常通过telnet发送我想要复制的短信作为短信,然后从短信中复制文本。 就是这样:
通过telnet连接:
- 语法:
telnet localhost <port>
- 例如:
telnet localhost 5554
(5554是默认端口,模拟器的标题栏显示正在使用的端口,所以你可以看看它是不同的)。
发信息:
- 语法:
sms send <senders phone number> <message>
- 示例:
sms send 1231231234 This is the message you want to send
(您可以只填写发件人的电话号码)
这对于链接非常有效,因为邮件会自动转换为超链接,您可以单击该超链接而无需将其复制/粘贴到浏览器中。
一旦仿真器收到消息,您可以复制它并粘贴到任何你喜欢的地方。
也许有点棘手,但你可以通过使用模拟器控件发送短信到模拟器。 那么你不必重新键入所有的文本,如果它更长,可以复制粘贴到模拟器中。
另一种方法:通过“telnet localhost PORT”连接到模拟器,然后使用硬件事件发送向模拟器发送文本input事件(需要为UTF-8)。 看看这个
你看过C2DM吗? chrome2phone和fox2phone可以发送链接和剪贴板文本,并自动将其复制到手机上。 另外,请尝试使用adbshell。 有一个服务命令(/ system / bin / service)可以使用服务(服务调用剪贴板…)。 对于getClipboardText,setClipboardText和hasClipboardText,事务代码分别为1,2和3。
如果您在Mac上使用Android Studio,则可能需要提供adb
可执行文件的完整path。 要find这个path,请打开:
Android Studio > Tools > Android > SDK Manager
将path复制到SDK位置。 adb
可执行文件将位于platform-tools
目录中。 对我而言,这是一条路:
~/Library/Android/sdk/platform-tools/adb
现在你可以运行这个命令:
~/Library/Android/sdk/platform-tools/adb shell input text 'thetextyouwanttopaste'
使用Visual Studio模拟器,这是我的方法。
先冢虚拟SD卡:
- 使用模拟器的附加工具(小>>图标)并转到SD卡选项卡。
- 在电脑上select一个文件夹与虚拟SD卡同步。
- 从SD卡拉,这将在选定的文件夹上创build一个文件夹结构。
设置一个文本文件来传输文本:
- 使用Google Play商店安装您select的文本编辑器
- 在您之前创build的虚拟SD卡目录的下载目录中创build一个包含您的文本的文本文件。
每当我需要发送文本到剪贴板。
- 编辑上面创build的文本文件。
- 转到其他工具(小>>图标),并select推送到SD卡。
- 在我安装的文本编辑器中打开文本文件,并将文本复制到剪贴板。 (当对话框打开时按住鼠标,select全选,然后点击复制图标)
一旦build立起来,很容易重复。 同样的方法可能适用于其他模拟器,您可能需要使用不同的方法将您的文本文件推送到模拟器。
(转换评论讨论来回答)
只有在Windows上的解决scheme: https : //github.com/gcb/AdbPaste
在几个小时内写出来解决这个问题。 我现在回到了100%的Linux,所以随时join作为贡献者或维护者!
我厌倦了这个问题,所以我只是用这个别名来处理它:
alias ap="pbpaste | xargs adb shell input text"
然后当你打开一个新的terminal窗口时,input“ap”将会把你的剪贴板上的任何内容粘贴到模拟器的主动select的文本字段中。
build立
只需将其添加到您的configuration文件(对于大多数用户来说, ~/.bash_profile
用于~/.bash_profile
的zsh用户)以使别名在任何地方都可用。 或者,如果您是bash用户(MacOS的默认用户),则可以在terminal中运行以下命令为您设置:
echo "alias ap='pbpaste | xargs adb shell input text'" >> ~/.bash_profile && source ~/.bash_profile
写入命令:adb设备(它将列出当前连接的设备)select要写入文本的文本框。 写命令:adb shellinput文本“Yourtext”(确保只有一个设备连接运行此命令)完成!
不知道这是否有用,但如果您需要在移动浏览器中打开桌面浏览器的长URL,则可以使用该URL发送短信并直接从短信应用程序中打开。
使这个Windows应用程序,允许用户从可视界面复制粘贴到Android模拟器或连接的设备。 https://github.com/Florin-Birgu/Android-Copy-Paste
我来到这里寻找同样的问题的解决scheme,并最终编写了一个Android应用程序来解决这个问题。 你可以在http://www.box.net/shared/6203bn441bfltkimajmk下载。; 只需通过“首选项”菜单指定一个URL即可指向一个可以轻松更改Web响应的地方。 Web响应的第一行将被复制到您的模拟器的剪贴板中。 更多细节可以在http://agilesc.barryku.com/?p=255find。;
对于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
然后在命令行中input:
adbtx 'Your text to emulator input'
“ 您的文本到模拟器input ”将被input到模拟器文本字段中。
荣誉给艾略特他为sed的替代string。
在Linux上,这将直接从剪贴板粘贴文本
adb shell input text "'$(xclip -selection c -o)'"
用这个命令创build全局键盘快捷键非常有用,例如Ctrl + Shift + Super + V
只要从任何地方复制,单击并按住模拟器手机的文本所在的编辑文本(有点像按住即可粘贴到实际的手机上),则会出现粘贴选项,然后粘贴。