Есть ли простой способ скопировать / вставить содержимое буфера обмена (рабочего стола) в EditView
в эмуляторе Android?
(просто для облегчения разработки / тестирования)
Есть ли простой способ скопировать / вставить содержимое буфера обмена (рабочего стола) в EditView
в эмуляторе Android?
(просто для облегчения разработки / тестирования)
С v25.3.x эмулятора Android и x86 эмулятора Google API системные изображения API уровня 19 (Android 4.4 - Kitkat) и выше вы можете просто скопировать и вставить со своего рабочего стола с помощью мыши или клавиатуры.
Эта функция была анонсирована в Android Studio 2.3.
~/.android/avd/
.ini
?
- person Chloe; 15.01.2018
В терминале введите adb shell input text 'my string here. With some characters escaped like \$ that'
Обратите внимание, что альтернативным методом включения пробелов в текст является замена каждого символа space
на %s
.
adb shell input text "
pbpaste"
- person lowellk; 05.08.2013
"Hello World"
отправляет только hello
на мой avd.
- person lampwins; 25.11.2013
'ლ\(ಠ益ಠლ\)'
он просто говорит «Убито» или кажется успешным, и ничего не набирается, и у меня нет ничего, что можно вставить в эмулятор. Метод SMS (я пробовал из DDMS) здесь даже не работает, отображается как? (????) :(
- person Groxx; 08.05.2014
adb shell input text '%*'
- person Peter; 29.07.2014
adb shell input text "This%sis%stext\nDoes%snot%work%here."
печатает Это текст \ nНе работает здесь ..
- person Firelord; 30.11.2015
alias adbpaste="pbpaste|sed 's/ /%s/g'|xargs adb shell input text"
. Не обрабатывает все специальные символы, но этого было достаточно для моих целей (вставка адресов электронной почты и буквенно-цифровых строк).
- person Eliot; 07.07.2016
adb shell input text "'"$(xclip -selection c -o)"'"
- person Andrey Izman; 11.08.2017
Обычно я отправляю текст, который хочу скопировать, как смс-сообщение через 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
(Вы можете просто придумать номер телефона отправителя)
Это очень хорошо работает для ссылок, поскольку сообщение автоматически преобразуется в гиперссылку, по которой вы можете щелкнуть, не копируя / вставляя ее в браузер.
Как только эмулятор получит сообщение, вы можете скопировать его и вставить в любое место.
echo sms send 0 `pbpaste | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/\\\\n/g'` | telnet localhost 5554
- person eruve; 26.03.2015
sms
команда? в моем telnet на macos этого нет
- person Dominic; 27.07.2017
Просто скопируйте откуда угодно, нажмите и удерживайте текст редактирования телефона-эмулятора там, где вы хотите, чтобы текст был помещен (вроде того, как вы нажимаете и удерживаете, чтобы вставить на настоящий телефон), появится опция ВСТАВИТЬ, а затем ВСТАВИТЬ.
Не уверен, что это полезно, но, если вам нужен длинный URL-адрес из настольного браузера для открытия в мобильном браузере, вы можете отправить SMS с этим URL-адресом и открыть его прямо из приложения для сообщений.
Если вы используете Android Studio на Mac, вам может потребоваться указать полный путь к исполняемому файлу 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'
~/Library/Android/sdk/platform-tools/
в переменную PATH, чтобы упростить использование.
- person ThomasW; 13.11.2020
Я устал от этой проблемы, поэтому я просто сделал этот псевдоним, чтобы справиться с ней:
alias ap="pbpaste | xargs adb shell input text"
Затем, когда вы откроете новое окно терминала, набрав «ap», вы вставите все, что находится в вашем буфере обмена, в активно выбранное текстовое поле эмулятора.
Просто добавьте его в свой профиль (для большинства пользователей это ~/.bash_profile
, для пользователей zsh это ~/.zshrc
), чтобы псевдоним был доступен повсюду. В качестве альтернативы, если вы являетесь пользователем bash (по умолчанию для MacOS), вы можете запустить следующую команду в терминале, чтобы настроить его для вас:
echo "alias ap='pbpaste | xargs adb shell input text'" >> ~/.bash_profile && source ~/.bash_profile
'alias' is not recognized as an internal or external command, operable program or batch file.
что делать
- person shareef; 25.09.2018
pbpaste
специфичен для macOS, но, вероятно, в Windows есть что-то похожее. alias
также может быть недоступен в зависимости от используемой оболочки.
- person ThomasW; 13.11.2020
Только для уровня API> = 24
Скопируйте любой текст со своего локального компьютера, а затем просто запустите эту команду
adb shell input keyevent 279
Убедитесь, что в настройках эмулятора Android включены параметры Enable Clipboard Sharing
.
Вы также можете сделать это без обходных путей. Просто нажмите и удерживайте немного в поле ввода, пока не появится уведомление о вставке, а затем нажмите «Вставить». Вот и все!
Может быть, это немного сложно, но вы можете отправить смс на эмулятор с помощью элемента управления эмулятором. тогда вам не нужно повторно вводить весь текст, если он длиннее, и вы можете скопировать и вставить его в эмулятор.
Другой способ: подключиться к эмулятору через «telnet localhost PORT», а затем использовать отправку аппаратных событий для отправки события ввода текста в эмулятор (должен быть UTF-8). посмотрите это
В Linux текст будет вставлен прямо из буфера обмена.
adb shell input text "'$(xclip -selection c -o)'"
Также очень полезно создать глобальную комбинацию клавиш с помощью этой команды, например, Ctrl + Shift + Super + V
Просто нажмите левую кнопку мыши на 2 или 3 секунды, появится кнопка вставки. Нажмите кнопку «Вставить», и тест будет скопирован без проблем.
Вы смотрели C2DM? chrome2phone и fox2phone могут отправлять ссылки и текст из буфера обмена и автоматически копировать его на телефон. Также попробуйте использовать оболочку adb. Есть служебная команда (/ system / bin / service), которая может использовать службы (буфер обмена служебных вызовов ...). Коды транзакции: 1, 2 и 3 для getClipboardText, setClipboardText и hasClipboardText соответственно.
Сделано это приложение для Windows, которое позволяет пользователям копировать вставку в эмуляторы Android или подключенные устройства с помощью визуального интерфейса. https://github.com/Florin-Birgu/Android-Copy-Paste
Есть простой способ
См. Исходный ответ: https://www.quora.com/How-do-I-paste-text-from-my-computer-to-Android-emulator
Используя эмулятор Visual Studio, вот мой метод.
Первый курган виртуальная sd карта:
Настройте текстовый файл для передачи текста:
Когда мне нужно отправить текст в буфер обмена.
После настройки довольно легко повторить. Тот же метод будет применим к другим эмуляторам, поскольку вам может потребоваться другой метод для передачи текстового файла в эмулятор.
(преобразование обсуждения комментария в ответ)
единственное решение для Windows: https://github.com/gcb/AdbPaste
написал это за пару часов, чтобы обойти эту проблему. Теперь я вернулся на 100% Linux, так что не стесняйтесь присоединяться к нему в качестве участника или сопровождающего!
Команда записи: adb devices (в нем будут перечислены устройства, подключенные в данный момент). Выберите текстовое поле, в которое вы хотите ввести текст. Команда записи: adb shell input text "Yourtext" (убедитесь, что для выполнения этой команды подключено только одно устройство) Готово!
Я пришел сюда в поисках решения той же проблемы и в итоге написал приложение для Android, чтобы решить эту проблему. Вы можете скачать его со страницы http://www.box.net/shared/6203bn441bfltkimajmk. Просто укажите URL-адрес через меню настроек, чтобы указать место, где вы можете легко изменить веб-ответ. Первая строка веб-ответа будет скопирована для вас в буфер обмена вашего эмулятора. Более подробную информацию можно найти на http://agilesc.barryku.com/?p=255. .
Для 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'
«Ваш текст для ввода эмулятора» будет введен в текстовое поле эмулятора.
Престижность Элиоту за его замену на sed.