【发布时间】:2021-04-06 00:58:03
【问题描述】:
有一个answered question about sending long presses on android,问题在于
- 实际上没有一个答案有效,有些使用过时的 API,有些 API 太新
- 我需要发送按键按下事件,然后才决定解除按键
从链接问题的最高投票答案开始,我有以下代码:
adb shell sendevent /dev/input/event2 1 172 1
adb shell sendevent /dev/input/event2 0 0 0
timeout 1
adb shell sendevent /dev/input/event2 1 172 0
adb shell sendevent /dev/input/event2 0 0 0
这些命令不起作用,答案的作者也没有说出命令的作用和原因。通过一些实验,我发现:
- 必须是
/dev/input/event0而不是event2 - 更改任何数字都不会发生任何事情
-
adb shell sendevent /dev/input/event2 0 0 0是必需的。我不知道它有什么作用
现在我需要发送按键的向上/向下事件,包括那些不在设备上的按键(例如 KEYCODE_DPAD_DOWN),所以 adb shell getevent 没有多大帮助 - 我无法按下不存在的键。我正在使用 Android 4.1.2 三星手机。
还有谁能给我解释一下0 0 0事件是什么?
【问题讨论】:
-
@AlexP。我真的厌倦了在没有彻底阅读问题的情况下投票重复的人。问题的答案是否与您的问题相关联?不,它没有!那么到底是什么? StackOverflow 是否感染了一些根据谷歌搜索结果投接近票的机器人?
-
您要发送哪个关键事件?你的意思是像卷一样的“关键”。上/下键还是别的什么?
-
@TDG 好问题,我在问题中添加了信息。基本上在KeyEvent specs 中定义的任何键都是有用的。