使用ADB模拟触摸

时间:2011-12-27 18:14:29

标签: android touch adb

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

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

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

2 个答案:

答案 0 :(得分:17)

由于它似乎根据Android版本而有所变化,我建议您按照以下说明操作:

  1. 启动您需要重现的转储动作事件:

    ~$ adb shell getevent | grep event2
    

    grep对过滤输出非常有用。

  2. 您想要复制的动作事件;

  3. 然后只需将转储中十六进制的所有值转换为十进制值! :)


  4. 要找到适合您的eventX,请执行以下操作:

    1. 启动终端并输入:

      ~$ adb shell getevent
      
    2. 您将看到快速移动的轨迹,例如/ dev / input / event4 ......

      1. 触摸屏一次
      2. 你必须在event4几个eventX和触摸时刻之后看到这些eventX

        将是您的再现动作事件的输入界面! :)

        Source

答案 1 :(得分:10)

我设法在sony xperia LT26i上模拟了这个事件 使用

adb shell getevent | grep event2

捕获输入然后将所有值从十六进制转换为十进制, 并将生成的序列放在一个shellscript中

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位置 接下来的两行是触摸按键,底部两行是触摸释放,我还没弄清楚第一行的功能是什么,但需要它才能工作。 我希望这对你有用