有人能完整解释这个命令吗?shell sendevent[device][type][code][value]?

有人能完整解释这个命令吗?shell sendevent[device][type][code][value]?,shell,adb,Shell,Adb,任何人都可以完整地解释以下命令: adb shell sendevent [device] [type] [code] [value] 我正在尝试使用send event命令为触摸事件编写脚本。首先,您需要找到手机或平板电脑上触摸屏设备的名称。您可以在adb shell会话中使用此命令: getevent -pl 2>&1 | sed -n '/^add/{h}/ABS_MT_TOUCH/{x;s/[^/]*//p}' 假设输入设备名称为/dev/input/event0,您希

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

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

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

首先,您需要找到手机或平板电脑上触摸屏设备的名称。您可以在
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
有关这些命令的含义和作用的解释,请阅读。

Im使用中兴通讯刀片(1.gen)CyanagenMod 7。屏幕分辨率是480x800经过一些尝试和错误,我发现为了按坐标240x725y,我实际上必须实现如下脚本: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 event记录事件,它给出的值是正确的,我只是不知道如何解释它们=)。

FYI使用的值可能是特定于设备/构建的。@Chris,只有触摸屏设备名称是特定于设备的。触摸事件协议和include/linux/input.h常量没有太大变化。但就个人而言,我更喜欢触摸模拟的
input-tap
命令,而不是
sendevent
。对不起,这根本不是真的。我的各种设备上的数字代码完全不同。@Chris,你介意发布你的设备列表吗?我很想知道是否有任何非遗留设备(即ics4.0+内核3.0+)不支持我下面回答中的事件代码。我自己也有几十台设备,它们都使用相同的事件代码。你忘了大部分安装的设备都运行较旧的版本。我认为他们甚至还没有停止在主要市场销售GB。