Как использовать ADB для отправки сенсорных событий на устройство с помощью команды sendevent?
Я пытаюсь отправить сенсорные события на устройство с помощью AndroidDebugBridge, так что я могу сделать некоторые основные автоматизации для тестов пользовательского интерфейса. Я следил за дискуссией в ссылке. Я могу использовать sendevent для имитации прикосновения к эмуляторам, но не могу сделать то же самое на устройстве.
кто-нибудь успел отправить прикосновение от ADB к устройству? Не могли бы вы поделиться решением.
5 ответов:
Android поставляется с
inputинструмент командной строки, который может имитировать различные события ввода. Чтобы имитировать нажатие, это:input tap x yвы можете использовать оболочку adb ( > 2.3.5) для удаленного запуска команды:
adb shell input tap x y
для того, чтобы сделать определенное действие (например, чтобы открыть веб-браузер), вам нужно сначала выяснить, где нажать. Для этого вы можете сначала запустить:
adb shell getevent -lкак только вы нажмете на устройство, в нужном месте, вы увидите этот вывод:
<...> /dev/input/event3: EV_KEY BTN_TOUCH DOWN /dev/input/event3: EV_ABS ABS_MT_POSITION_X 000002f5 /dev/input/event3: EV_ABS ABS_MT_POSITION_Y 0000069eadb говорит вам, что клавиша была нажата (кнопка вниз) в позиции 2f5, 69e в шестнадцатеричном формате, который составляет 757 и 1694 в десятичном формате.
если теперь вы хотите создать то же самое событие, вы можете использовать введите команду крана в том же положении:
adb shell input tap 757 1694дополнительную информацию можно найти по адресу:
https://source.android.com/devices/input/touch-devices.html http://source.android.com/devices/input/getevent.html
2.3.5 не было
input tap, простоinput keyeventиinput textВы можете использовать monkeyrunner для этого: (это копия ответа на https://stackoverflow.com/a/18959385/1587329):вы можете использовать monkeyrunner такой:
$ monkeyrunner >>> from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice >>> device = MonkeyRunner.waitForConnection() >>> device.touch(200, 400, MonkeyDevice.DOWN_AND_UP)вы также можете сделать драг, старт мероприятия и т. д. Взгляните на api для MonkeyDevice.
рассмотрите возможность использования Android uiautomator, С adb shell uiautomator [...] или непосредственно с помощью .jar, который поставляется с SDK.
вам не нужно использовать
, вам просто нужно включить в настройках разработчика на устройстве [показать сенсорные данные], чтобы получить X и Y.adb shell getevent-l
дополнительную информацию можно найти в моей статье здесь: https://mobileqablog.wordpress.com/2016/08/20/android-automatic-touchscreen-taps-adb-shell-input-touchscreen-tap/
Comments