Per prima cosa è necessario trovare il nome del dispositivo touchscreen sul telefono o sul tablet. È possibile utilizzare questo comando in adb shell
sessione:
getevent -pl 2>&1 | sed -n '/^add/{h}/ABS_MT_TOUCH/{x;s/[^/]*//p}'
Diciamo che il nome del dispositivo di input è /dev/input/event0
e si vuole emulare un rapido tocco in corrispondenza delle coordinate x = 300, y = 400:
sendevent /dev/input/event0 3 53 300
sendevent /dev/input/event0 3 54 400
sendevent /dev/input/event0 3 48 5
sendevent /dev/input/event0 3 58 50
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0
Il tocco lungo (diciamo 1 secondo lungo) presso le stesse coordinate sarebbe:
sendevent /dev/input/event0 3 53 300
sendevent /dev/input/event0 3 54 400
sendevent /dev/input/event0 3 48 5
sendevent /dev/input/event0 3 58 50
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0
sleep 1
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0
Per la spiegazione che cosa quei comandi significano e fanno esattamente si prega di leggere 0.123.102,636 mila.
fonte
2013-06-23 16:58:06
FYI i valori utilizzati sono potenzialmente specifici per dispositivo/build. –
@Chris, solo il nome del dispositivo touchscreen è specifico del dispositivo. Il protocollo di evento touch e le costanti include/linux/input.h non sono cambiate molto. Ma personalmente preferisco il comando "input tap" su "sendevent'for touch emulation. –
Scusa, ma non è vero. I codici numerici sono ** abbastanza ** diversi sui miei vari dispositivi. –