Como simular um evento de toque com o Android enquanto fornece as coordenadas X e Y manualmente?
android
adb
gesture-recognition
Indira
fonte
fonte
Respostas:
O método de Valentin Rocher funciona se você estendeu sua visão, mas se estiver usando um ouvinte de evento, use este:
Para saber mais sobre como obter um objeto MotionEvent, aqui está uma excelente resposta: Android: como criar um MotionEvent?
fonte
downTime
seria o momento em que o usuário tocava na tela, enquantoeventTime
neste caso seria quando o usuário levantasse o dedo (ACTION_UP
). Não tenho certeza se ainda funcionará se os dois forem iguais. Você pode testá-lo e postar seus resultados.Aqui está um script monkeyrunner que envia toque e arrasta para um aplicativo. Tenho usado isso para testar se meu aplicativo pode lidar com gestos rápidos e repetitivos de deslizamento.
fonte
MonkeyDevice.DOWN_AND_UP
vez de'DOWN_AND_UP'
. (DOWN_AND_UP
é o padrão, então seu código ainda funciona)UP
açãouse os comandos adb Shell para simular o evento de toque
fonte
Se entendi claramente, você deseja fazer isso de forma programática. Então, você pode usar o método onTouchEvent de
View
e criar umMotionEvent
com as coordenadas de que precisa.fonte
Você deve dar uma chance ao novo monkeyrunner . Talvez isso resolva seus problemas. Você coloca códigos-chave nele para teste, talvez eventos de toque também sejam possíveis.
fonte
adb shell monkey
omonkeyrunner
, que é uma ferramenta diferente.Ao usar o Monkey Script, notei que o DispatchPress (KEYCODE_BACK) não está fazendo nada que seja realmente uma merda. Em muitos casos, isso se deve ao fato de que a Activity não consome o evento Key. A solução para este problema é usar uma mistura de script monkey e comando adb shell input em uma sequência.
1 O uso do script monkey proporcionou um ótimo controle de tempo. Espere um certo segundo para a atividade e é uma chamada de bloqueio adb.
2 Finalmente, o envio do evento-chave 4 do shell adb encerrará o APK em execução.
POR EXEMPLO
adb shell monkey -p com.my.application -v -v -v -f /sdcard/monkey_script.txt 1
adb shell input keyevent 4
fonte
MotionEvent é gerado apenas tocando a tela.
fonte