将多个相同的按键事件发送到adb shell?

5
您如何向adb shell发送相同按键的多个按键事件?例如,您可以像这样发出一个“删除”按键事件(#67):
adb shell input keyevent 67

但是是否有这样的东西(注:这不起作用)?
adb shell input keyevent 67 67

你可以使用两个命令吗? adb shell input keyevent 67 adb shell input keyevent 67 - fpanizza
2个回答

12

尝试使用

adb shell "input keyevent 67 && input keyevent 67"

如果您需要编写大型脚本,您也可以尝试这种方法


3
这个方法可行,但是速度上与输入 adb shell input keyevent 67 两次是一样的。我原本希望它能像输入 adb shell input text 'HE' 那样快,而不是需要两行代码:adb shell input text 'H'adb shell input text 'E' - Micro
1
我认为这更适合组合。 - hypd09

1
如果您关心速度,我建议使用sendevent命令发送事件。我发现它在模拟轻触时特别快。 示例
sendevent /dev/input/event18 1 67 1 // send key down event 67
sendevent /dev/input/event18 0 0 0  // end of report
sendevent /dev/input/event18 1 67 0 // send key up event 67
sendevent /dev/input/event18 0 0 0  // end of report

语法

sendevent <device> <type> <code> <value>

注意

这是在低级别发送事件,这样可以获得很多控制权和灵活性,通过发送您感兴趣的确切事件使其更加高效。在我看来,一个很大的缺点是你必须自己确定设备(可能使用getevent命令并手动找出)。设备/dev/input/event18只是我从手机上使用的示例,这不是常数。

有关有效参数的参考,请参阅标题文件。https://android.googlesource.com/platform/external/kernel-headers/+/8bc979c0f7b0b30b579b38712a091e7d2037c77e/original/uapi/linux/input.h


1
sendevent: /dev/input/event0: 权限被拒绝In [189]: !C:\QGB\software\scrcpy-win64\adb.exe shell "sendevent /dev/input/event4 1 67 1 " sendevent: /dev/input/event4: 权限被拒绝 - CS QGB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接