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