任何人都可以完全解释以下命令:
adb shell sendevent [device] [type] [code] [value]
我正在尝试使用发送事件命令为触摸事件编写脚本。
首先,您需要在手机或平板电脑上找出触摸屏设备的名称。adb shell
您可以在会话中使用此命令:
getevent -pl 2>&1 | sed -n '/^add/{h}/ABS_MT_TOUCH/{x;s/[^/]*//p}'
假设输入设备名称是/dev/input/event0
,并且您想在坐标 x=300, y=400 处模拟快速点击:
sendevent /dev/input/event0 3 53 300
sendevent /dev/input/event0 3 54 400
sendevent /dev/input/event0 3 48 5
sendevent /dev/input/event0 3 58 50
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0
在相同坐标处的长触摸(比如说 1 秒长)将是:
sendevent /dev/input/event0 3 53 300
sendevent /dev/input/event0 3 54 400
sendevent /dev/input/event0 3 48 5
sendevent /dev/input/event0 3 58 50
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0
sleep 1
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0
有关这些命令的含义和确切含义的解释,请阅读在 Android 中使用 sendevent 模拟触摸屏交互。
我使用 ZTE Blade(1.gen) CyanagenMod 7。屏幕分辨率为 480x800 经过反复试验,我发现为了按下坐标 240x 725y,我实际上必须像这样实现脚本:988 = 240x, 2768 = 725y
sendevent /dev/input/event0 3 53 988
sendevent /dev/input/event0 3 54 2768
sendevent /dev/input/event0 3 48 5
sendevent /dev/input/event0 3 58 50
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0
sendevent /dev/input/event0 0 2 0
sendevent /dev/input/event0 0 0 0
我以前用 get 事件记录事件,它给出的值是正确的,我只是不知道如何解释它们 = )。