2013-06-23 6 views
7

Może ktoś wyjaśnić następujące polecenie w pełni:może ktoś wyjaśnić to polecenie w pełni adb shell sendevent [urządzenie] [type] [code] [value]?

adb shell sendevent [device] [type] [code] [value] 

Próbuję napisać skrypt dla zdarzeń dotykowych korzystających wysłać polecenie zdarzeń.

+0

FYI użyte wartości są potencjalnie specyficzne dla urządzenia/kompilacji. –

+0

@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. –

+1

Przepraszam, ale to po prostu nieprawda. Kody numeryczne są ** całkiem ** różne na moich różnych urządzeniach. –

Odpowiedz

8

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.

0

Im używając ZTE blade (1.gen) CyanagenMod 7. Rozdzielczość ekranu wynosi 480x800 Po kilku próbach i błędach zorientowałem się, że aby nacisnąć współrzędne 240x 725y, faktycznie musiałem zaimplementować skrypt w ten sposób: 988 = 240x , 2768 = 725y

sendevent /dev/input/event0 3 53 988 
sendevent /dev/input/event0 3 54 2768 
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 

byłem wcześniej rejestrowanie zdarzeń z imprezy gET i ceni to dawał były poprawne po prostu nie wiedzą, jak je interpretować =).

Powiązane problemy