使用 adb shell 将文本粘贴到 Android 模拟器剪贴板

发布于 2024-12-02 18:59:57 字数 619 浏览 1 评论 0原文

我需要使用 adb shell 将文本粘贴到 Android 模拟器剪贴板中。 在Android 1.6和2.3.1上尝试

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

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

service call clipboard 2 s16 thisisinsertedtext 

似乎不起作用 while

service call clipboard 1 

显示剪贴板的内容:

service call clipboard 1
Result: Parcel(
   0x00000000: 00000000 00000001 00000001 00000004 '................'
   0x00000010: 00650074 00740078 00000000          't.e.x.t.....    ')

请告知如何为模拟器剪贴板设置值!

I need to paste text into the Android emulator clipboard using adb shell.
tried on Android 1.6 and 2.3.1

I tried to use adb shell command: clipboard:[android.text.iclipboard]

"service call clipboard" where service codes are 1, 2, and 3, for getClipboardText, setClipboardText, and hasClipboardText respectively.

service call clipboard 2 s16 thisisinsertedtext 

does not seem to work
while

service call clipboard 1 

shows the content of clipboard:

service call clipboard 1
Result: Parcel(
   0x00000000: 00000000 00000001 00000001 00000004 '................'
   0x00000010: 00650074 00740078 00000000          't.e.x.t.....    ')

Please advise how to set a value for emulator clipboard!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

感情废物 2024-12-09 18:59:58

使用下面的命令。

服务调用剪贴板 2 i32 1 i32 18 s16 thisisinsertedtext

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

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

所以,我的问题是,有什么方法可以复制 unicode 字符串吗?
我的意思是,多字节字符集,例如韩语。
我尝试了很多方法,但都失败了。

Use below command.

service call clipboard 2 i32 1 i32 18 s16 thisisinsertedtext

I think that the first one, "i32 1" is how many elements in clipboard. So, just one.
Second is a length of string.
The command written above shows...

Result: Parcel(00000000 '....')
This usually means OK, no error.

So, my question is, is there any way to copy unicode string?
I mean, muti-byte character sets, like Korean.
I tried many way, but it failed.

源来凯始玺欢你 2024-12-09 18:59:58

看来自 API 级别 11 以来,所有 3 个方法均已弃用,因此它不适用于 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
http://developer.android.com/reference/android/content/ClipboardManager.html
http://developer.android.com/guide/topics/text/copy -paste.html

Looks like all 3 old methods are deprecated since API Level 11 so it won’t work for ICS
Not clear if it's even possible to make it work with service call clipboard anymore...

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
http://developer.android.com/reference/android/content/ClipboardManager.html
http://developer.android.com/guide/topics/text/copy-paste.html

乖乖 2024-12-09 18:59:58

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

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

没问题。

“你好吗”是汉字。

第二个“i32 1”可以是任何整数,也许......

adb shell service call clipboard 2 i32 1 i32 1 s16 "你好吗"

Result: Parcel(00000000 '....')

That is OK.

"你好吗" is Chinese character.

The second 'i32 1' can be any integer, maybe...

挥剑断情 2024-12-09 18:59:58

试试这个:

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

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

Try this:

i32: Write the integer INT into the send parcel.

s16: Write the UTF-16 string STR into the send parcel.

扶醉桌前 2024-12-09 18:59:58

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

这是一个解决方案。

Using adb shell command directly do not work since API Level 11.

Here is a solution.

乱了心跳 2024-12-09 18:59:58

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

我在 GitHub 上找到了一个名为 Clipper 的应用程序的一些代码,该应用程序可以使用 adb 通过广播意图填充剪贴板。我增强了它以从文件中读取,增强的代码在这里:https://github.com/RoundSparrow/clipper

构建应用程序,安装在设备上。现在我可以使用 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 速度要快得多,无论剪贴板内容有多大,它只需要一两秒。

There is an open source python script that can deal with the severe limitations: https://github.com/gcb/AdbPaste - and it works well enough except for long clipboard file uploads it's incredibly slow (200 line text file can take 20 minutes).

I found some code on GitHub for an app called clipper that can use adb to populate clipboard via a broadcast intent. I enhanced it to read from a file, the enhanced code is here: https://github.com/RoundSparrow/clipper

Build the app, install on the device. Now I can use ADB commands to populate the clipboard via a file. Works like a charm for a 3 page script I need to upload. Essentially you use like this:

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

It's much faster AdbPaste, it takes only a second or two regardless of the size of the clipboard content.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文