手机连接到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"
/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
输入我们整理过的简洁版的代码
就可以看到手机相应位置发生了点击事件