4

我有一个 Android 电视盒,我想通过 ADB 命令控制它。特别是,我想在它上面发送“点击”事件。到目前为止,我一直在通过“adb shell input tap x,y”来做到这一点,它工作得很好,但速度太慢了。所以我试图通过“adb shell sendevent ...”来做到这一点,我认为这更快。

我已经遵循了几个关于如何做到这一点的教程,但我面临的问题是我无法记录哪个是事件序列,以便向我的设备发送简单的单击。

这是我到目前为止所做的。为了获取事件序列,我尝试使用“getevent”命令获取它们:

q201:/ # getevent -l
add device 1: /dev/input/event4
  name:     "HID 04b3:310b"
could not get driver version for /dev/input/mouse1, Not a typewriter
add device 2: /dev/input/event3
  name:     "cec_input"
could not get driver version for /dev/input/mice, Not a typewriter
add device 3: /dev/input/event2
  name:     "gpio_keypad"
add device 4: /dev/input/event1
  name:     "adc_keypad"
could not get driver version for /dev/input/mouse0, Not a typewriter
add device 5: /dev/input/event0
  name:     "aml_keypad"

当我单击鼠标左键时,我会看到此事件:

/dev/input/event4: EV_MSC       MSC_SCAN             00090001
/dev/input/event4: EV_KEY       BTN_MOUSE            DOWN
/dev/input/event4: EV_SYN       SYN_REPORT           00000000
/dev/input/event4: EV_MSC       MSC_SCAN             00090001
/dev/input/event4: EV_KEY       BTN_MOUSE            UP
/dev/input/event4: EV_SYN       SYN_REPORT           00000000

不再生成事件。每次单击鼠标时,都会生成相同的事件。相同的代码。相同的价值观。总是一样 !

那么......我点击的坐标在哪里?为什么我没有收到关于我点击的位置的任何事件?实际上,点击在设备上有效,所以..事件在哪里?如果没有该事件,我将无法使用sendevent命令重现单击。

谢谢你的支持!公克

4

1 回答 1

1

我终于用猴子(不是monkeyrunner)来模拟水龙头。快多了。

于 2020-07-30T22:07:15.263 回答