Есть ли способ имитировать касание (в любом месте) экрана без рута?
Если нет, есть ли другой способ выполнить картонное действие «выбрать» без магнитной поддержки или каждый раз открывать картон ?
Я пытаюсь заставить картонные приложения работать с телефоном 5.1, который не поддерживает магнитную «кнопку».
Кажется, что большинство приложений используют кнопку для выбора или продвижения вперед, поэтому без ее работы ее сложно использовать. Я обнаружил, что прикосновение в любом месте экрана также работает как выбор, поэтому в данный момент я открываю заднюю часть, касаюсь экрана, а затем снова закрываю его, но очевидно, что это быстро становится утомительным.
Что я пробовал:
Используя мой геймпад ipega 9017 (в режимах геймпада, клавиатуры и iCade), ни один режим не сопоставляет какую-либо клавишу с чем-либо, что выполняет действие выбора в картоне (хотя в некоторых режимах кнопка B сопоставляется со спиной, что работает, по крайней мере, для выхода из картонного приложения).
Я пробовал Tincore Keymapper , но для имитации касания требуется root, и я не могу получить root права на свое устройство.
Ищете здесь, пользовательское сопоставление клавиш для игр? , Могу ли я использовать USB-геймпад без какой-либо настройки? а мышь трогать? выглядели наиболее многообещающе, но ни один из них не отвечает на этот вопрос.
Вы можете потенциально имитировать прикосновение с помощью команды input tap x y
(например, из эмулятора терминала или, возможно , с помощью Tasker (не могу вспомнить, может ли он выполнять команды оболочки, но я предполагаю, что да)) или через ADB с помощью adb shell input tap x y
. См. https://stackoverflow.com/a/20830258/2141741 (и если вы хотите подключить устройство к себе через ADB, https://code.google.com/p/android/issues/detail?id=48126 и соответствующие комментарии являются информативными).
Это решение не требует рута (по крайней мере, не делает этого с компьютера, подключенного через ADB).
$ while true; do read; adb shell input tap 0 0; echo pressed; done
. Хотя у него большое отставание.Я попробовал то, что предложил @user43185 , но это не сработает. Но в качестве альтернативы я вижу, что можно использовать следующее.
input [text|keyevent]
input text <string>
input keyevent <event_code>
input motionevent <x> <y> <down|move|up>
input motionevent-batch <pointer-log>
Например, если мне нужно событие касания, я делаю:
adb shell input motionevent x y down
adb shell input motionevent x y up
Где x и y — координаты на устройстве.
ОБНОВИТЬ.
Согласно этому ответу , причина, по которой другой ответ не будет работать, связана с версией Android на устройстве.
tap
, swipe
, press
и roll
на ADB версии 1.0.36.Я сделал это на Android 6.0 с помощью приложения Automate . Скачать Automate Flow можно здесь . Каждый раз, когда вы нажимаете кнопку гарнитуры, она запускает команду оболочки «input tap 200 200».
ГигантДерево
Повелитель огня
Антониосссс
Шэнву Чжан