使用ADB模拟触摸

Uri*_*ren 10 android touch adb

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

我尝试重新发送从adb shell getevents获得的事件,即使命令通过没有错误也无法正常工作.有任何想法吗?

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

小智 17

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

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

    ~$ adb shell getevent | grep event2
    
    Run Code Online (Sandbox Code Playgroud)

    grep 过滤输出非常有用.

  2. 做想要重现的动作事件;

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


要查找eventX的工作原理,请执行以下操作:

  1. 启动终端并输入:

    ~$ adb shell getevent
    
    Run Code Online (Sandbox Code Playgroud)

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

  1. 触摸屏一次

在触摸的那一刻,你必须在event4几个eventX和这些eventX之间看到

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

来源.

  • 请提供完整的答案,而不仅仅是一个链接.链接可能会消失,更改等,因此答案将无法使用. (3认同)

tau*_*aur 10

我设法通过使用来模仿索尼xperia LT26i上的事件

adb shell getevent | grep event2
Run Code Online (Sandbox Code Playgroud)

捕获输入,然后将所有值从十六进制转换为十进制,并将生成的序列放在一个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
Run Code Online (Sandbox Code Playgroud)

我从链接论坛中的帖子中看到,第2行和第3行设置X和Y位置,接下来的2行是触摸按下,下面2行是触摸释放,我还没弄清楚第一行是什么但它需要它上班.我希望这对你有用