在Android模拟器上粘贴文本

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

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

179253 次浏览

也许有点棘手,但你可以通过使用模拟器控件发送SMS到模拟器。然后,如果文本较长,则不必重新键入所有文本,并且可以在模拟器中复制粘贴它。

另一种方式:通过telnet localhost PORT连接到模拟器 然后使用硬件事件发送向模拟器发送一个文本输入事件(需要UTF-8)。查看

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

我来这里是为了寻找同样问题的解决方案,最后写了一个Android应用程序来解决这个问题。你可以从http://www.box.net/shared/6203bn441bfltkimajmk下载它。只需通过首选项菜单提供一个URL,指向一个可以轻松更改Web响应的地方。Web响应的第一行将为您复制到模拟器的剪贴板。更多细节可以在http://agilesc.barryku.com/?p=255找到。

我通常通过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

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

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

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

在终端中,键入adb shell input text 'my string here. With some characters escaped like \$ that'

注意,在文本中包含空格的另一种方法是将每个space字符替换为%s

使用Visual Studio模拟器,这是我的方法。

首先堆一个虚拟sd卡:

  1. 使用模拟器的附加工具(小>>图标),然后转到 SD卡选项卡。李< / >
  2. 选择计算机上要与
  3. .虚拟SD卡
  4. 从SD卡拉,这将在选定的文件夹上创建一个文件夹结构。

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

  1. 使用谷歌Play Store安装您选择的文本编辑器
  2. 在您计算机上之前创建的虚拟sd卡目录的下载目录中创建一个包含您的文本的文本文件。

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

  1. 编辑上面创建的文本文件。
  2. 打开“附加工具”(小>>图标),选择“推到SD卡”。
  3. 在我安装的文本编辑器中打开文本文件,并将文本复制到剪贴板中。(打开对话框时按住鼠标,选择全选,然后点击复制图标)

一旦设置好,就很容易重复。相同的方法将适用于其他模拟器,您可能需要使用不同的方法将您的文本文件推到模拟器。

(将评论讨论转换为回答)

windows上唯一的解决方案:https://github.com/gcb/AdbPaste

为了解决这个问题,我花了几个小时写了它。我现在回到100%的linux,所以请随意加入它作为贡献者或维护者!

如果你在Mac上使用Android Studio,你可能需要提供adb可执行文件的完整路径。要找到这条路径,打开:

Android Studio > Tools > Android > SDK Manager

将路径复制到SDK位置。adb可执行文件将位于platform-tools目录中。对我来说,这就是道路:

~/Library/Android/sdk/platform-tools/adb

现在您可以执行以下命令:

~/Library/Android/sdk/platform-tools/adb shell input text 'thetextyouwanttopaste'

对于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'

'你的文本到模拟器输入'将在模拟器文本字段中输入。

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

我厌倦了这个问题,所以我只是做了这个别名来处理它:

alias ap="pbpaste | xargs adb shell input text"

然后,当你打开一个新的终端窗口时,输入“ap”将把剪贴板上的任何内容粘贴到模拟器主动选择的文本字段中。

设置

只需将此添加到您的配置文件(对于大多数用户是~/.bash_profile,对于zsh用户是~/.zshrc),使别名在任何地方都可用。或者,如果你是bash用户(MacOS的默认用户),那么你可以在终端中运行以下命令来为你设置:

echo "alias ap='pbpaste | xargs adb shell input text'" >> ~/.bash_profile && source ~/.bash_profile

写入命令:adb devices(它将列出当前连接的设备) 选择要写入文本的文本框。 写入命令:adb shell input text" Yourtext"(确保只连接一台设备执行此命令) 完成了!< / p >

v25.3。Android Emulator &x86谷歌API Emulator系统图像API Level 19 (Android 4.4 - Kitkat)和更高,您可以简单地从您的桌面用鼠标或键盘复制和粘贴。

该特性在Android Studio 2.3中宣布

Copy and Paste with the Android Emulator

不确定这是否有用,但是,如果你需要在移动浏览器中打开桌面浏览器的长URL,你可以用该URL发送短信,并直接从消息应用程序打开。

enter image description here

制作这个Windows应用程序,允许用户从可视界面复制粘贴到Android模拟器或连接的设备。 https://github.com/Florin-Birgu/Android-Copy-Paste < / p >

enter image description here

在Linux上,这将直接从剪贴板粘贴文本

adb shell input text "'$(xclip -selection c -o)'"

此外,使用此命令创建全局键盘短键也非常有用,例如Ctrl + Shift +超级+ V

只要从任何地方复制,点击并按住模拟器手机的编辑文本你想要的文本(有点像你会按下并按住粘贴在实际的电话),粘贴选项将出现,然后粘贴。

你也可以不使用变通方法。只需点击并按住输入框,直到粘贴通知出现,然后点击粘贴。就是这样!

仅适用于API级别>= 24

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

adb shell input keyevent 279

确保在Android模拟器设置中启用了Enable Clipboard Sharing选项

点击鼠标左键2 - 3秒,就会出现粘贴按钮。单击粘贴按钮,测试将顺利复制。

有一个简单的方法

  1. 在模拟器中激活键盘。
  2. 点击你想要粘贴的地方,长按(直到看到粘贴字)
  3. 完成了。

参见原始答案:https://www.quora.com/How-do-I-paste-text-from-my-computer-to-Android-emulator

对于Mac用户来说,一个更简单的方法是在android模拟器中完成这一操作:

  • 点击并按住一到两秒钟
  • 点击发布
  • “粘贴”选项将出现如下

enter image description here

实际上,在我的情况下,重新启动MacBook并使用这个命令运行模拟器解决了这个问题:

 emulator -avd Pixel_5_API_31  -wipe-data

请记住,您应该使用您的模拟器设备,查看模拟器列表使用以下命令:

emulator -list-avds

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

为了解决这个问题,我让我的模拟器从cold boot开始,而不是quick boot