Najpierw musisz sprawdzić nazwę urządzenia z ekranem dotykowym na telefonie lub tablecie. Można użyć tego polecenia w adb shell
sesji:
getevent -pl 2>&1 | sed -n '/^add/{h}/ABS_MT_TOUCH/{x;s/[^/]*//p}'
powiedzmy nazwa urządzenia wejściowego /dev/input/event0
i chcesz naśladować szybki zawór na współrzędnych 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
The długa dotykowym (powiedzmy 1 sek długie) na tych samych współrzędnych byłoby:
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
za wyjaśnienie, co te komendy oznaczają i czy dokładnie Proszę przeczytać Emulating touchscreen interaction with sendevent in Android.
FYI użyte wartości są potencjalnie specyficzne dla urządzenia/kompilacji. –
@Chris, tylko nazwa urządzenia z ekranem dotykowym jest specyficzna dla urządzenia. Dotykowy protokół zdarzeń i stałe/linux/input.h nie zmieniły się tak bardzo. Ale osobiście wolę komendę 'input tap' niż' sentevent' dla emulacji dotykowej. –
Przepraszam, ale to po prostu nieprawda. Kody numeryczne są ** całkiem ** różne na moich różnych urządzeniach. –