Intereting Posts
Как скрыть кнопки «Навигация» и «GPS-указатель», когда я нажимаю маркер на карте андроида google Match_parent не работает с CoordinatorLayout Пространство имен 'не связано' Цвет фона элемента меню навигации для выбранного элемента Просмотр пейджера с универсальным загрузчиком изображений Является ли Parse.com подходящей услугой для резервного копирования / синхронизации с SQLite в Android? Не удалось запустить файл open_gapps-arm-6.0-stock-20160220 в genymotion? Установка Android Studio SDK завершилась неудачей Mac OS X Android.content.res.Resources $ NotFoundException в Robolectric 2.4 Выбор с намерением камеры и убирать изображение Перенос проекта Android Eclipse в рабочее пространство «Страница не найдена», когда пользователь нажимает на приглашение Facebook из моего приложения Android 5.0 Lollipop – перезагрузка Nexus 10 и отладка USB не обнаружены? Android Studio – исключение mergeDebugResources Карта Google подписала ошибки api в Android

Вставка текста в буфер обмена эмулятора Android с помощью оболочки adb

Мне нужно вставить текст в буфер обмена эмулятора Android с помощью оболочки adb. Попробовал на Android 1.6 и 2.3.1

Я попытался использовать команду adb shell: clipboard: [android.text.iclipboard]

«Service call clipboard», где служебные коды 1, 2 и 3, для getClipboardText, setClipboardText и hasClipboardText соответственно.

service call clipboard 2 s16 thisisinsertedtext 

Похоже, не работает

 service call clipboard 1 

Показывает содержимое буфера обмена:

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

Пожалуйста, сообщите, как установить значение для буфера обмена эмулятора!

Solutions Collecting From Web of "Вставка текста в буфер обмена эмулятора Android с помощью оболочки adb"

Используйте команду ниже.

Сервисный буфер обмена 2 i32 1 i32 18 s16 thisisinsertedtext

Я думаю, что первое, «i32 1» – это количество элементов в буфере обмена. Итак, только один. Вторая – длина строки. Команда, написанная выше, показывает …

Результат: Посылка (00000000 '….') Обычно это означает «ОК», нет ошибки.

Итак, мой вопрос: есть ли способ скопировать строку Unicode? Я имею в виду, мути-байтовые наборы символов, например, корейские. Я пробовал много, но это провалилось.

Похоже, что все три старых метода устарели с уровня API 11, поэтому он не будет работать для ICS
Не ясно, возможно ли даже сделать работу с буфером обслуживания больше …

 static final int TRANSACTION_getClipboardText 1 static final int TRANSACTION_hasClipboardText 3 static final int TRANSACTION_setClipboardText 2 

http://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

Adb shell service clipboard 2 i32 1 i32 1 s16 "你 好吗"

Результат: Посылка (00000000 '….')

Все в порядке.

«你 好吗» – это китайский характер.

Второй «i32 1» может быть любым целым числом, возможно …

Попробуй это:

I32: Напишите целое число INT в посылку отправки.

S16: Введите строку STR UTF-16 в посылку отправки.

Использование команды adb shell напрямую не работает с уровня API 11.

Вот решение.

Существует сценарий 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, он занимает всего секунду или два независимо от размера содержимого буфера обмена.