Существует ли простой способ скопировать / вставить содержимое буфера обмена (рабочего стола) в EditView
эмулятор Android?
(просто для облегчения разработки / тестирования)
Существует ли простой способ скопировать / вставить содержимое буфера обмена (рабочего стола) в EditView
эмулятор Android?
(просто для облегчения разработки / тестирования)
Ответы:
С v25.3.x из эмулятора Android и системных образов эмулятора API x86 API уровня 19 (Android 4.4 - Kitkat) и выше вы можете просто копировать и вставлять со своего рабочего стола с помощью мыши или клавиатуры.
Эта функция была анонсирована в Android Studio 2.3
~/.android/avd/
.ini
файлов?
В терминале введите adb shell input text 'my string here. With some characters escaped like \$ that'
Обратите внимание, что альтернативный метод включения пробелов в тексте заключается в замене %s
каждого space
символа.
adb shell input text "
pbpaste"
'ლ\(ಠ益ಠლ\)'
он просто говорит «Убито» или, кажется, завершается успешно, и ничего не набрано, и у меня нет ничего вставляемого в эмуляторе. Метод SMS (я пробовал из DDMS) здесь даже не работает, он отображается как «? (????)» :(
adb shell input text "This%sis%stext\nDoes%snot%work%here."
выводит "Это текст \ nНе работает здесь."
Я обычно отправляю текст, который хочу скопировать, в виде смс-сообщения через 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
(Вы можете просто указать номер телефона отправителя)
Это работает очень хорошо для ссылок, так как сообщение автоматически преобразуется в гиперссылку, по которой вы можете щелкнуть без необходимости копировать / вставлять его в браузер.
Как только эмулятор получает сообщение, вы можете скопировать его и вставить в любое место.
adb
. Смотри мой ответ.
Просто скопируйте откуда угодно, нажмите и удерживайте текст редактирования телефона эмулятора, куда вы хотите, чтобы текст шел (вроде как вы нажимаете и удерживаете, чтобы вставить на реальный телефон), появится опция PASTE, затем PASTE.
Не уверен, что это полезно, но если вам нужно открыть длинный 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'
Я устал от этой проблемы, поэтому я просто создал этот псевдоним:
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 ap="adb shell input text `pbpaste`"
'alias' is not recognized as an internal or external command, operable program or batch file.
что делать
Только для уровня 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
Сделано это Windows-приложение, которое позволяет пользователям копировать вставки в эмуляторы Android или подключенные устройства из визуального интерфейса. https://github.com/Florin-Birgu/Android-Copy-Paste
Вы смотрели на C2DM? chrome2phone и fox2phone могут отправлять ссылки и текст буфера обмена и автоматически копировать его на телефон. Также попробуйте использовать оболочку adb. Есть служебная команда (/ system / bin / service), которая может использовать службы (буфер обмена служебными вызовами ...). Коды транзакций 1, 2 и 3 для getClipboardText, setClipboardText и hasClipboardText соответственно.
Используя эмулятор Visual Studio, вот мой метод.
Сначала найдите виртуальную SD-карту:
Настройте текстовый файл для передачи текста:
Всякий раз, когда мне нужно отправить текст в буфер обмена.
После настройки это довольно легко повторить. Этот же метод будет применим к другим эмуляторам, поскольку вам может потребоваться использовать другой метод для передачи вашего текстового файла в эмулятор.
(преобразование комментария обсуждения в ответ)
Единственное решение для Windows: https://github.com/gcb/AdbPaste
написал за пару часов, чтобы обойти эту проблему. Теперь я вернулся на 100% Linux, поэтому не стесняйтесь присоединиться к нему в качестве участника или сопровождающего!
Я пришел сюда в поисках решения той же проблемы и в итоге написал приложение для 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.