在Android模拟器上粘贴文本

ank*_*nfo 291 android copy-paste

无论如何都要EditView在Android模拟器上复制/粘贴(桌面)剪贴板内容?

(只是为了方便开发/测试)

Ros*_*one 294

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

请注意,在文本中包含空格的替代方法是替换%s每个space字符.

  • 如果您使用的是Mac,则可以更轻松地粘贴剪贴板的内容:`adb shell input text"`pbpaste`"` (19认同)
  • 今天结束了几个小时,并在python中为空间问题写了一个解决方法.现在更容易将小书签结束到股票浏览器,而无需创建十几个同步帐户.https://github.com/gcb/AdbPaste(在等待模拟器加载和几个在线游戏会话时编写......!$%#slow emulator) (3认同)
  • 这似乎不适用于某些UTF字符 - 在尝试发送''ლ\(ಠ益ಠლ\)'`之后,它只是说'已杀'或似乎成功并且没有输入任何内容,也没有任何可粘贴的东西在模拟器中.SMS方法(我尝试从DDMS)似乎甚至没有在这里工作,它显示为"?(????)":( (2认同)
  • 我也不能用空格发送字符串; 我必须使用%s. (2认同)
  • @Peter和Rose,有没有办法添加一条新线?`adb shell输入文本"这%sis%stext \n要%snot%work%here."`打印"这是文本\n这里不起作用." (2认同)

Jam*_*son 98

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

Android Studio 2.3宣布了此功能

使用Android模拟器复制并粘贴

  • 自2018年1月起,当前模拟器版本中存在一个已知错误,此错误偶尔会停止工作.要解决此问题,请单击"..."图标,转到"设置",然后关闭并启用"启用剪贴板共享"设置.([来源](https://www.reddit.com/r/androiddev/comments/7kn4c8/quick_boot_the_top_features_in_the_android/drh4ytm/)) (20认同)
  • @jcollum左键单击并按住要粘贴的文本字段,单击"粘贴".cmd + v不起作用,ctrl + v也不行,我想. (11认同)
  • 我打开和关闭“启用剪贴板共享”,甚至重新启动了模拟器和 android studio。这不起作用。我找到了简单的解决方法。在模拟器中写一些内容并复制和粘贴。然后,粘贴到编辑器中。然后从桌面复制文本并粘贴到模拟器中。它工作完美。 (9认同)
  • 你如何在mac上粘贴?按 Cmd 会调出多点触控。Cmd-V 什么都不做。 (4认同)
  • 基本上,这有时会无缘无故地停止工作。我尝试切换“启用剪贴板共享”,但没有解决问题 (2认同)

Joe*_*ham 83

我通常通过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来复制粘贴! (8认同)
  • 这个答案是矫枉过正的.用'adb`.看我的回答. (7认同)
  • 你甚至不需要telnet ...你可以从ddms发送短信(但是ddms需要telnet).但好主意:) (3认同)

TEH*_*RAH 15

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

在此输入图像描述


Ray*_*aga 12

只需从任何地方复制,单击并按住模拟器手机的编辑文本,您希望文本移动(有点像您要按住以粘贴在实际手机上),PASTE选项将出现,然后是PASTE.

  • 谢谢!绝对是我最喜欢的答案。使用当前版本的仿真器,这非常方便。(当前的仿真器在“设置”下的仿真器控件中具有一个设置,允许剪贴板共享。) (2认同)

小智 10

只需单击鼠标左键并按住 1 秒,然后松开。
将出现一个粘贴按钮。单击粘贴按钮,文本将被复制。

  • 有时有效,有时无效。所以他才这么问。 (2认同)

LMG*_*LMG 10

对于 Mac 用户,更简单的方法是在 android 模拟器中正确执行此操作:

  • 单击并按住一两秒钟
  • 释放点击
  • 选项“粘贴”将显示如下

在此处输入图片说明

  • 嗯,有时它不起作用。这就是为什么他问 (4认同)

Moh*_*hat 10

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

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


And*_*rew 8

如果您在Mac上使用Android Studio,则可能需要提供adb可执行文件的完整路径.要找到此路径,请打开:

Android Studio > Tools > Android > SDK Manager
Run Code Online (Sandbox Code Playgroud)

将路径复制到SDK位置.该adb可执行文件将是一个内platform-tools目录.对我来说,这就是道路:

~/Library/Android/sdk/platform-tools/adb
Run Code Online (Sandbox Code Playgroud)

现在您可以运行此命令:

~/Library/Android/sdk/platform-tools/adb shell input text 'thetextyouwanttopaste'
Run Code Online (Sandbox Code Playgroud)


gMa*_*ale 8

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

alias ap="pbpaste | xargs adb shell input text"
Run Code Online (Sandbox Code Playgroud)

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

设置

只需将此添加到您的个人资料中(对于大多数用户,即~/.bash_profilezsh 用户~/.zshrc),即可在任何地方使用别名。或者,如果您是 bash 用户(MacOS 的默认用户),那么您可以在终端中运行以下命令为您进行设置:

echo "alias ap='pbpaste | xargs adb shell input text'" >> ~/.bash_profile && source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)


小智 8

仅适用于 API 级别 >= 24

从本地机器复制任何文本,然后只需运行此命令

adb shell input keyevent 279
Run Code Online (Sandbox Code Playgroud)

确保在 Android Emulator SettingsEnable Clipboard Sharing中启用了选项


小智 7

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

在此输入图像描述


小智 7

您也可以在没有变通方法的情况下执行此操作。只需在输入字段中单击并按住一会儿,直到出现粘贴通知,然后单击粘贴。就是这样!


nir*_*jan 7

有一个简单的方法

  1. 在模拟器中激活键盘。
  2. 单击要粘贴的位置并长按(按住直到看到“PASTE”一词)
  3. 完毕。

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


mad*_*mad 5

也许有点棘手,但您可以使用模拟器控件向模拟器发送短信.然后,如果文本较长,则不必重新键入所有文本,并且可以将其复制粘贴到模拟器中.

另一种方法:通过"telnet localhost PORT"连接到模拟器,然后使用硬件事件发送将文本输入事件发送到模拟器(需要是UTF-8).看看这个


And*_*man 5

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

adb shell input text "'$(xclip -selection c -o)'"
Run Code Online (Sandbox Code Playgroud)

例如,使用此命令创建全局键盘快捷键也非常有用 Ctrl+Shift+Super+V


Ale*_*lex 5

添加另一个答案,因为这是我能够解决此问题的唯一(奇怪)方法。

有一个名为“启用剪贴板共享”的(无效)设置。一开始它不起作用:

在此输入图像描述

但是,一旦启用该设置,您必须在设备上至少使用一次内置复制粘贴,然后它才会开始工作(当 Android 键盘打开时,一旦您在 Windows/Mac 上复制某些内容,该值暂时可以在 Android 键盘上使用)。

另请记住,模拟器会监视主机操作系统的“复制”事件,并且仅提供此后的文本。

即,如果您在打开模拟器之前已经在剪贴板中保存了某些内容,则该内容将不可用,因为没有要捕获的事件。