任何人都可以完全解释这个命令adb shell sendevent [device] [type] [code] [value]?

时间:2013-06-23 10:24:51

标签: shell adb

任何人都可以完全解释以下命令:

adb shell sendevent [device] [type] [code] [value]

我正在尝试使用send event命令为触摸事件编写脚本。

2 个答案:

答案 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事件记录事件,并且它给出的值是正确的我只是不知道如何解释它们=)。