在Android模拟器上粘贴文本

有没有办法复制/粘贴(桌面)的剪贴板内容到Android模拟器上的EditView

(只是为了方便开发/testing)

借助Android Emulator和x86 Google API仿真器系统映像API Level 19(Android 4.4 – Kitkat)及更高版本的v25.3.x,您只需使用鼠标或键盘从桌面复制和粘贴即可。

Android Studio 2.3发布了此function

使用Android模拟器复制和粘贴

在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'

请注意,在文本中包含空格的替代方法是将%sreplace为每个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卡:

  1. 使用模拟器的附加工具(小>>图标)并转到SD卡选项卡。
  2. 在电脑上select一个文件夹与虚拟SD卡同步。
  3. 从SD卡拉,这将在选定的文件夹上创build一个文件夹结构。

设置一个文本文件来传输文本:

  1. 使用Google Play商店安装您select的文本编辑器
  2. 在您之前创build的虚拟SD卡目录的下载目录中创build一个包含您的文本的文本文件。

每当我需要发送文本到剪贴板。

  1. 编辑上面创build的文本文件。
  2. 转到其他工具(小>>图标),并select推送到SD卡。
  3. 在我安装的文本编辑器中打开文本文件,并将文本复制到剪贴板。 (当对话框打开时按住鼠标,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

只要从任何地方复制,单击并按住模拟器手机的文本所在的编辑文本(有点像按住即可粘贴到实际的手机上),则会出现粘贴选项,然后粘贴。