手機連接配接到ADB 輸入指令
adb shell getevent -p
顯示
從這裡可以知道每一個 /dev/input/event3: 0003 0035 00000161 event3是什麼事件 便于以後進行分析簡介代碼
接下來輸入
adb shell getevent
然後手機就可以接受手機螢幕上的點選事件的位置(不過是16進制)
/dev/input/event3: 0003 0030 00000025
/dev/input/event3: 0003 0032 00000005
/dev/input/event3: 0003 0035 00000160 點選事件位置
/dev/input/event3: 0003 0036 00000226 點選事件位置
/dev/input/event3: 0000 0002 00000000
/dev/input/event3: 0000 0000 00000000
/dev/input/event3: 0003 0030 00000025
/dev/input/event3: 0003 0032 00000005
/dev/input/event3: 0003 0035 00000160
/dev/input/event3: 0003 0036 00000226
/dev/input/event3: 0000 0002 00000000
/dev/input/event3: 0000 0000 00000000
/dev/input/event7: 0003 0028 00000012
/dev/input/event7: 0000 0000 00000000
/dev/input/event3: 0000 0002 00000000
/dev/input/event3: 0000 0000 00000000
/dev/input/event7: 0003 0028 00000016
/dev/input/event7: 0000 0000 00000000
/dev/input/event7: 0003 0028 00000018
/dev/input/event7: 0000 0000 00000000
/dev/input/event3: 0000 0002 00000000
/dev/input/event3: 0000 0000 00000000
接下來可以通過16進制轉換器将 /dev/input/event3: 0003 0035 00000161 的數字轉化為10進制 讓後再在前面加上sendevent 例如
sendevent /dev/input/event3 3 48 37 可以删除
sendevent /dev/input/event3 3 50 5 保留一個
sendevent /dev/input/event3 3 53 352 點選事件位置
sendevent /dev/input/event3 3 54 550 點選事件位置
sendevent /dev/input/event3 0 2 0 事件分割
sendevent /dev/input/event3 0 0 0 事件分割
sendevent /dev/input/event3 3 48 37
sendevent /dev/input/event3 3 50 5
sendevent /dev/input/event3 3 53 352
sendevent /dev/input/event3 3 54 550
sendevent /dev/input/event3 0 2 0
sendevent /dev/input/event3 0 0 0
sendevent /dev/input/event7 3 40 18
sendevent /dev/input/event7 0 0 0
sendevent /dev/input/event3 0 2 0
sendevent /dev/input/event3 0 0 0
sendevent /dev/input/event7 3 40 22
sendevent /dev/input/event7 0 0 0
sendevent /dev/input/event7 3 40 24
sendevent /dev/input/event7 0 0 0
sendevent /dev/input/event3 0 2 0
sendevent /dev/input/event3 0 0 0
這些就是一個完整的點選事件的過程 這個 時候可以對比之前所檢視的 adb shell getevent -p 指令顯示的event事件 事件
/dev/input/event3
name: "atmel-touchscreen"
/dev/input/event1
name: "huawei_keypad"
/dev/input/event7
name: "light sensor"
/dev/input/event4
name: "l3g4200d_gyr"
可以知道event7是一個光線傳感器 和點選事件無關是以可以删除 接下來可以簡潔我們的點選事件 流程
簡潔版
sendevent /dev/input/event3 3 50 5
sendevent /dev/input/event3 3 53 352
sendevent /dev/input/event3 3 54 550
sendevent /dev/input/event3 0 2 0
sendevent /dev/input/event3 0 0 0
sendevent /dev/input/event3 0 2 0
sendevent /dev/input/event3 0 0 0
sendevent /dev/input/event3 0 2 0
接下來是一個長按事件
長點選事件
sendevent /dev/input/event3 3 50 5
sendevent /dev/input/event3 3 53 80
sendevent /dev/input/event3 3 54 429
sendevent /dev/input/event3 0 2 0
sendevent /dev/input/event3 0 0 0
sendevent /dev/input/event3 0 2 0
試了很多次發現了以上的規律 雖然不知道為什麼
點選流程
sendevent /dev/input/event3 3 50 5
sendevent /dev/input/event3 3 53 352
sendevent /dev/input/event3 3 54 550
sendevent /dev/input/event3 0 2 0 點選還未進入長點選狀态
sendevent /dev/input/event3 0 0 0
sendevent /dev/input/event3 0 2 0 點選後進入長點選狀态
sendevent /dev/input/event3 0 0 0
sendevent /dev/input/event3 0 2 0 點選使事件結束 長點選狀态消失
然後就可以得到我們需要點選的地方的一個事件
進入到 adb shell
輸入我們整理過的簡潔版的代碼
就可以看到手機相應位置發生了點選事件