android - Come utilizzare ADB per inviare eventi tattili al dispositivo utilizzando il comando sendevent?




2 Answers

Per eseguire un'azione particolare (ad esempio per aprire il browser Web), è necessario prima capire dove toccare. Per farlo, puoi prima eseguire:

adb shell getevent -l

Una volta premuto il dispositivo, nella posizione desiderata, visualizzerai questo risultato:

<...>
/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    0000069e

adb ti sta dicendo che è stato premuto un tasto (tasto giù) in posizione 2f5, 69e in esadecimale che è 757 e 1694 in decimale.

Se ora vuoi generare lo stesso evento, puoi utilizzare il comando di input tap nella stessa posizione:

adb shell input tap 757 1694

Maggiori informazioni possono essere trovate a:

https://source.android.com/devices/input/touch-devices.html http://source.android.com/devices/input/getevent.html

android automation adb touchscreen

Sto tentando di inviare eventi di tocco a un dispositivo utilizzando AndroidDebugBridge, in modo da poter eseguire un'automazione di base per i test dell'interfaccia utente. Ho seguito la discussione in LINK . Sono in grado di utilizzare sendevent per simulare il tocco sugli emulatori, ma non riesco a fare lo stesso su un dispositivo.

Come nel link qui sopra, l'emulatore sembra inviare 6 eventi per ogni tocco (xcoord, ycoord, 2 per la stampa, 2 per il rilascio) ed è stato facile utilizzare queste informazioni per inviare gli eventi, ma sembra che un getevent per il touchscreen di un dispositivo generare troppi eventi.

Qualcuno è riuscito a inviare il tocco da ADB a un dispositivo? Potresti per favore condividere la soluzione.




Prendi in considerazione l'utilizzo di uiautomator di Android, con adobe shell uiautomator [...] o direttamente utilizzando .jar che viene fornito con l'SDK.






Related