任何人都可以完全解释以下命令:
adb shell sendevent [device] [type] [code] [value]
我正在尝试使用send event命令为触摸事件编写脚本。
答案 0 :(得分:8)
首先,您需要在手机或平板电脑上找到触摸屏设备的名称。您可以在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
有关这些命令的含义和完整解释,请阅读Emulating touchscreen interaction with sendevent in Android。
答案 1 :(得分:0)
我正在使用中兴刀片(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事件记录事件,并且它给出的值是正确的我只是不知道如何解释它们=)。