我试图使用批处理文件(.bat)和adb shell发送触摸事件。
我尝试重新发送从adb shell getevents获取的事件,但是即使命令没有错误,也无法正常工作。有什么想法吗?
如何在给定的(x,y)坐标上使用ADB shell模拟触摸事件和释放事件?
由于似乎会根据Android版本而改变,我建议您遵循以下步骤:
开始转储需要重现的运动事件:
~$ adb shell getevent | grep event2
grep
非常有用,可以用来过滤输出。
要复现运动事件,请将转储中所有十六进制值转换为十进制值! :)
要查找适合您的事件X的操作,请执行以下操作:
启动终端并键入:
~$ adb shell getevent
您会看到快速移动的轨迹,例如 /dev/input/event4 ......
在触摸时,您必须在 event4 之间看到几个 eventX 和这些 eventX。
这将是您的输入接口,以重现运动事件!:)
来源。
我成功地通过使用 Sony Xperia LT26i 模拟了这个事件。
adb shell getevent | grep event2
捕获输入并将所有值从十六进制转换为十进制,然后将生成的序列放入shell脚本中
adb shell sendevent /dev/input/event2 3 57 23710
adb shell sendevent /dev/input/event2 3 53 329
adb shell sendevent /dev/input/event2 3 54 1183
adb shell sendevent /dev/input/event2 3 52 0
adb shell sendevent /dev/input/event2 0 0 0
adb shell sendevent /dev/input/event2 3 57 4294967295
adb shell sendevent /dev/input/event2 0 0 0
我从链接的论坛帖子中得知,第2行和第3行设置了X和Y位置,接下来的两行是触摸按下,底部的两行是触摸释放,但我还没搞清楚第一行是干什么用的,但是它是需要的才能使它工作。