使用ADB模拟触摸

发布于 2024-12-23 04:46:27 字数 161 浏览 1 评论 0原文

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

我尝试重新发送从 adb shell getevents 获得的事件,即使命令顺利通过,它也不起作用。 有什么想法吗?

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

I am trying to send touch events using batch files (.bat) and the adb shell.

I tried to re-send events I get from the adb shell getevents, and it doesn't work even though the command passes without errors.
Any ideas?

How do I simulate a touch-event and release-event on a given (x,y) coordinate using the ADB shell?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酷到爆炸 2024-12-30 04:46:27

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

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

    ~$ adb shell getevent | grep 事件2
    

    grep 对于过滤输出非常有用。

  2. 执行您想要重现的动作事件;

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


要查找 eventX 正在为您工作,请执行以下操作:

  1. 启动终端并输入:

    ~$ adb shell getevent
    

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

  1. 触摸一次屏幕

您必须在 event4 之间看到几个 eventX 以及这些 eventX 就在触摸的瞬间

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

来源

Since it seems to change depending on the Android version, I suggest you to follow these instructions :

  1. Start dump motion event you need to reproduce:

    ~$ adb shell getevent | grep event2
    

    grep is very useful to filter output.

  2. Do motion event you want to reproduce;

  3. Then just convert all values from hex in dump to decimal values! :)


To find what eventX is working for you do following:

  1. Start terminal and type:

    ~$ adb shell getevent
    

You will see quickly moving traces with for example /dev/input/event4 ......

  1. Touch screen once

You must see between event4 few eventX and these eventX right in the moment of the touch

will be yours input interface for reproducing motion events! :)

Source.

浅暮の光 2024-12-30 04:46:27

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

I managed to emulate the event on sony xperia LT26i
by using

adb shell getevent | grep event2

to capture input and then converting all values from hex to decimal,
and by putting the generated sequence in a 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

I figured from posts in linked forum that line 2 and 3 are setting X and Y position
the next 2 lines are touch press and the bottom 2 lines are touch release, I havent figured out what the first line does yet but it is needed for it to work.
I hope this is useful to you

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文