Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用adb shell将文本粘贴到Android仿真器剪贴板_Android_Emulation_Clipboard_Copy Paste - Fatal编程技术网

使用adb shell将文本粘贴到Android仿真器剪贴板

使用adb shell将文本粘贴到Android仿真器剪贴板,android,emulation,clipboard,copy-paste,Android,Emulation,Clipboard,Copy Paste,我需要使用adb shell将文本粘贴到Android仿真器剪贴板中。 在安卓1.6和2.3.1上试用 我尝试使用adb shell命令:剪贴板:[android.text.iclipboard] “服务调用剪贴板”,其中服务代码分别为1、2和3,用于getClipboardText、setClipboardText和hasClipboardText service call clipboard 2 s16 thisisinsertedtext 似乎不起作用 当 显示剪贴板的内容: serv

我需要使用adb shell将文本粘贴到Android仿真器剪贴板中。 在安卓1.6和2.3.1上试用

我尝试使用adb shell命令:剪贴板:[android.text.iclipboard]

“服务调用剪贴板”,其中服务代码分别为1、2和3,用于getClipboardText、setClipboardText和hasClipboardText

service call clipboard 2 s16 thisisinsertedtext 
似乎不起作用 当

显示剪贴板的内容:

service call clipboard 1
Result: Parcel(
   0x00000000: 00000000 00000001 00000001 00000004 '................'
   0x00000010: 00650074 00740078 00000000          't.e.x.t.....    ')
请建议如何设置模拟器剪贴板的值

使用下面的命令

服务调用剪贴板2 i32 1 i32 18 s16此为插入文本

我认为第一个“i32 1”是剪贴板中有多少个元素。所以,就一个。 第二个是一段字符串。 上面写的命令显示

结果:包裹(00000000'..') 这通常意味着正常,没有错误

所以,我的问题是,有没有办法复制unicode字符串? 我是说,多字节字符集,比如韩语。 我试了很多方法,但都失败了

adb shell服务调用剪贴板2 i32 1 i32 1 s16“你好吗"

结果:包裹(00000000'..')

没关系

"你好吗“是汉字

第二个“i32 1”可以是任何整数,可能…

请尝试以下操作:

i32:将整数INT写入发送包裹


s16:将UTF-16字符串STR写入发送包。

看起来所有3个旧的方法都已弃用,因为API级别为11,因此它不适用于ICS
不清楚是否有可能使其在服务调用剪贴板中工作

static final int    TRANSACTION_getClipboardText 1
static final int    TRANSACTION_hasClipboardText 3
static final int    TRANSACTION_setClipboardText 2
www.androidjavadoc.com/1.0_r1_src/constant values.html



直接使用adb shell命令不起作用,因为API级别为11


这是一个解决方案。

有一个开源python脚本,可以处理严重的限制:-它工作得很好,除了长时间的剪贴板文件上传,它的速度非常慢(200行文本文件可能需要20分钟)

我在GitHub上找到了一个名为clipper的应用程序的一些代码,该应用程序可以使用adb通过广播目的填充剪贴板。我将其增强为从文件读取,增强的代码如下:

构建应用程序,安装在设备上。现在我可以使用ADB命令通过文件填充剪贴板。就像我需要上传的3页脚本的符咒一样工作。基本上你可以这样使用:

adb push clipboard_content_file.txt /sdcard/clipboard_content_file.txt
adb shell am broadcast -a clipper.setfile -e filepath \'/sdcard/clipboard_content_file.txt\'

AdbPaste要快得多,不管剪贴板内容的大小,它只需要一两秒钟。

我如何才能粘贴到剪贴板4 worlds?这是插入的文本我想你会将字符串放在引号中。此命令行适用于我的姜饼模拟器,但不适用于ICS。返回的包裹中的数据显示“未知包”。第一个i32是
0
以清除剪贴板,设置为非零。代码使用'if((0!=data.readInt())…`。其他i32对文本中的跨距(即粗体)进行编码。请参阅com.android.server.ClipboardService类。另请参阅
adb push clipboard_content_file.txt /sdcard/clipboard_content_file.txt
adb shell am broadcast -a clipper.setfile -e filepath \'/sdcard/clipboard_content_file.txt\'