有一个简单的方法复制/粘贴(桌面的)剪贴板内容到EditView上的安卓模拟器?
(只是为了简化开发/测试)
有一个简单的方法复制/粘贴(桌面的)剪贴板内容到EditView上的安卓模拟器?
(只是为了简化开发/测试)
也许有点棘手,但你可以通过使用模拟器控件发送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 <端口> 例如:telnet localhost 5554
(5554为默认端口。模拟器的标题栏显示了正在使用的端口,因此您可以看到它是否不同)。
发送信息:
文本格式:sms send <发件人电话号码> <消息> 示例:sms send 1231231234要发送的消息
(你可以编一个寄件人的电话号码)
这对于链接非常有效,因为消息会自动转换为一个超链接,你可以单击,而不必复制/粘贴到浏览器中。
一旦模拟器接收到消息,您就可以复制它并将其粘贴到任何您喜欢的地方。
在终端中,输入adb shell input text 'my string here。使用一些转义字符,比如\$ that'
注意,在文本中包含空格的另一种方法是将每个空格字符替换为%s。
使用Visual Studio模拟器,这是我的方法。
首先堆一个虚拟sd卡:
使用模拟器的附加工具(小>>图标),然后转到 SD卡选项卡。 选择计算机上要与 虚拟SD卡。 从SD卡拉,这将在选定的文件夹上创建一个文件夹结构。
设置一个文本文件来传输文本:
使用谷歌Play Store安装您选择的文本编辑器 在您计算机上之前创建的虚拟sd卡目录的下载目录中创建一个包含您的文本的文本文件。
每当我需要向剪贴板发送文本时。
编辑上面创建的文本文件。 打开“附加工具”(小>>图标),选择“推到SD卡”。 在我安装的文本编辑器中打开文本文件,并将文本复制到剪贴板中。(打开对话框时按住鼠标,选择全选,然后点击复制图标)
一旦设置好,就很容易重复。相同的方法将适用于其他模拟器,您可能需要使用不同的方法将您的文本文件推到模拟器。
(将评论讨论转换为回答)
唯一解决方案在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'
'Your text to emulator input'将在emulator text字段中输入。
向Eliot的sed替换字符串致敬。
我厌倦了这个问题,所以我只是做了这个别名来处理它:
alias ap="pbpaste | xargs adb shell input text"
然后,当你打开一个新的终端窗口时,输入“ap”将把剪贴板上的任何内容粘贴到模拟器主动选择的文本字段中。
设置
只需将其添加到您的配置文件(对于大多数用户来说是~/)。ZSH用户的~/.zshrc Bash_profile)使别名在任何地方都可用。或者,如果你是bash用户(MacOS的默认用户),那么你可以在终端中运行以下命令来为你设置:
echo "alias ap='pbpaste | xargs adb shell input text'" >> ~/.bash_profile && source ~/.bash_profile
写入命令:adb devices(它将列出当前连接的设备) 选择要写入文本的文本框。 写入命令:adb shell input text" Yourtext"(确保只连接一台设备执行此命令) 完成了!
v25.3。Android Emulator & x86谷歌API Emulator系统图像API Level 19 (Android 4.4 - Kitkat)或更高,您可以简单地从您的桌面用鼠标或键盘复制和粘贴。
这一功能是在Android Studio 2.3中发布的
制作了这个Windows应用程序,允许用户从可视化界面复制粘贴到Android模拟器或连接的设备。 https://github.com/Florin-Birgu/Android-Copy-Paste
在Linux上,这将直接从剪贴板粘贴文本
adb shell input text "'$(xclip -selection c -o)'"
用这个命令创建全局键盘短键也很有用,例如Ctrl+Shift+Super+V
仅适用于API级别>= 24
从本地机器复制任何文本,然后简单地运行这个命令
adb shell input keyevent 279
确保在Android模拟器设置中启用剪贴板共享选项
有一个简单的方法
在模拟器中激活键盘。 点击你想要粘贴的地方,长按(直到看到粘贴字) 完成了。
参见原始答案:https://www.quora.com/How-do-I-paste-text-from-my-computer-to-Android-emulator
实际上,在我的情况下,重新启动MacBook并使用这个命令运行模拟器解决了这个问题:
emulator -avd Pixel_5_API_31 -wipe-data
请记住,您应该使用您的模拟器设备,查看模拟器列表使用以下命令:
emulator -list-avds
我的情况是,我的模拟器粘贴了我几天前复制的一些东西,而从未将最后一个东西粘贴到我笔记本电脑的当前剪贴板中。
为了解决这个问题,我让我的模拟器从冷启动而不是快速启动。
有时模拟器的剪贴板与系统剪贴板不同步。这是一个bug。
但是您可以考虑在调试模式下更改变量值的能力:https://www.jetbrains.com/help/idea/tutorial-set-value.html#solution (Android Studio基于IntelliJ IDEA,所以我希望这个链接会有帮助)
如果你的应用程序从剪贴板读取文本,你可以改变这个文本的变量值,并越过你的文本