0

我不确定关于通过 adb 注入事件的问题是否应该在 StackOverflow 或Android Enthusiasts中,如果它不属于这里,请移动它。

无论如何,我的问题如下。

我显然必须确定发送和接收事件的设备“类型”。我显然无法向键盘设备发送触摸事件。

经过大量研究,我找到了sendeventandgetevent命令。

所以,我想长按手机的电源按钮。

我目前使用这个:

sendevent /dev/input/event3 1 116 0
sendevent /dev/input/event3 1 116 1

这适用于HTC Wildfire(单击输入设备的链接),因为键盘包含电源按钮,并且116恰好是电源键的扫描码。

我知道/dev/input/event3/和代表116什么0 or 11中间/dev/input/event3/116代表什么?我如何获得它?

继续使用Nexus 4。现在,我注意到它有一个单独的电源键和键盘处理程序

[编辑]

在XDA上找到了这个sendeventgetevent

4

1 回答 1

4

1在 /dev/input/event3/ 和 116 之间”代表EV_KEY事件类型常量:

  • EV_KEY:用于描述键盘、按钮或其他类似键的设备的状态变化。

getevent -l /dev/input/event3/如果您运行并按下电源键,您可能会自己找到它。

另外要找出电源键输入设备名称,我建议解析输出getevent -pl而不是/proc/bus/input/devices. 您要查找的设备已KEY_POWER在事件部分列出:

add device X: /dev/input/eventX
  name:     "xxxxxxxxxx"
  events:
    KEY (0001): KEY_POWER

正确的长按电源键顺序(如按住 1 秒钟然后松开)将是:

sendevent /dev/input/eventX 1 116 1
sendevent /dev/input/eventX 0 0 0
sleep 1
sendevent /dev/input/eventX 1 116 0
sendevent /dev/input/eventX 0 0 0

注意:getevent -pl不适用于 Gingerbread 及以下版本。

于 2013-07-09T15:26:53.300 回答