您可以使用 sendevent 命令实现此目的。
(在帖子中我解释了它是如何工作的。如果你不关心,你可以使用我制作的this python文件。导入AdbInput类,你基本上完成了)
1º。在您的 adb 终端上获取 root 访问权限:
如果你想使用 sendevent 命令,你需要 root 手机(我不会解释如何 root 你的手机)。生根后,进入你的终端,在你的手机已经连接的情况下,写:adb shell su。您的手机上应该会出现一个弹出窗口,要求您进行 root 访问。允许它,现在您将看到您的 shell 显示 root@[your phone] 而不是来自 'shell@[your phone]'。
2º。查找您的触摸屏的事件。
在 adb 终端(无论是否为 root)中输入“getevent”,然后在运行时触摸手机屏幕。应该出现很多文本和数字。我们正在搜索消息的第一部分,在我的例子中:'/dev/input/event2'(你的将非常相似)。
3º。使用 sendevent 发送触摸事件。
现在,您需要复制从“getevent”命令获得的消息以创建新的触摸事件。我将粘贴实现从 (200, 200) 到 (200, 300) 再到 (300, 300) 的滑动所需的命令,然后解释它们。 (用第 2 步中得到的事件替换“event~”)
device.shell("sendevent /dev/input/event~ 1 330 1")
device.shell("sendevent /dev/input/event~ 3 57 10")
device.shell("sendevent /dev/input/event~ 3 53 200")
device.shell("sendevent /dev/input/event~ 3 54 200")
device.shell("sendevent /dev/input/event~ 0 0 0")
device.shell("sendevent /dev/input/event~ 3 53 200")
device.shell("sendevent /dev/input/event~ 3 54 300")
device.shell("sendevent /dev/input/event~ 0 0 0")
device.shell("sendevent /dev/input/event~ 3 53 300")
device.shell("sendevent /dev/input/event~ 3 54 300")
device.shell("sendevent /dev/input/event~ 0 0 0")
device.shell("sendevent /dev/input/event~ 1 330 0")
device.shell("sendevent /dev/input/event~ 0 0 0")
前两个事件“放下手指”(第一个指定屏幕已被触摸,第二个指定触摸压力)。第三个和第四个事件设置触摸的 x 和 y 位置(都为 200,您可以更改 200s 进行实验)。在每组命令之后需要一个“0 0 0”。接下来的两个设置另一个滑动点,然后是“0 0 0”。下一个发生在接下来的三个中。倒数第二个命令“抬起”手指,最后一个是“0 0 0”事件。
因此,如果您只想点击 (100, 230),您可以输入以下内容:
device.shell("sendevent /dev/input/event~ 1 330 1") # Puts down finger
device.shell("sendevent /dev/input/event~ 3 57 10") # Sets pressure
device.shell("sendevent /dev/input/event~ 3 53 100") # Sets X to 100
device.shell("sendevent /dev/input/event~ 3 54 230") # Sets Y to 230
device.shell("sendevent /dev/input/event~ 0 0 0") # "0 0 0" (its called a SYN_REPORT)
device.shell("sendevent /dev/input/event~ 1 330 0") # Lift up finger
device.shell("sendevent /dev/input/event~ 0 0 0") # "0 0 0"
就是这样!!你完成了!