使用ADB模拟触摸

10

我试图使用批处理文件(.bat)和adb shell发送触摸事件。

我尝试重新发送从adb shell getevents获取的事件,但是即使命令没有错误,也无法正常工作。有什么想法吗?

如何在给定的(x,y)坐标上使用ADB shell模拟触摸事件和释放事件?

2个回答

18

由于似乎会根据Android版本而改变,我建议您遵循以下步骤:

  1. 开始转储需要重现的运动事件:

    ~$ adb shell getevent | grep event2
    

    grep非常有用,可以用来过滤输出。

  2. 要复现运动事件,请将转储中所有十六进制值转换为十进制值! :)


要查找适合您的事件X的操作,请执行以下操作:

  1. 启动终端并键入:

    ~$ adb shell getevent
    

您会看到快速移动的轨迹,例如 /dev/input/event4 ......

  1. 轻触屏幕一次

在触摸时,您必须在 event4 之间看到几个 eventX 和这些 eventX。

这将是您的输入接口,以重现运动事件!:)

来源


3
请提供完整的答案,而不仅仅是链接。链接可能会消失、更改等,因此答案将无法使用。 - Nanne
1
该链接已更新,包括以下内容适用于Android 2.2+(更加简便!)“adb shell input tap x y” - Matt

10

我成功地通过使用 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位置,接下来的两行是触摸按下,底部的两行是触摸释放,但我还没搞清楚第一行是干什么用的,但是它是需要的才能使它工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接