Android 使用adb shell模拟ALT、SHIFT等的两个关键事件

Android 使用adb shell模拟ALT、SHIFT等的两个关键事件,android,adb,Android,Adb,使用adb外壳输入keyevent可以模拟某些关键事件。还有一些修改键,如SHIFT\u LEFT,ALT\u RIGHT等 我想模拟两个键,例如SHIFT+A,但是 adb shell input keyevent SHIFT_LEFT; keyevent A 结果仅在屏幕上显示一个简单的a。如果需要Shift+a,则必须按以下顺序执行 Press shift Press A Release A Release shift 这可以通过使用 命令格式:sendevent设备类型代码值 [c

使用
adb外壳输入keyevent
可以模拟某些关键事件。还有一些修改键,如
SHIFT\u LEFT
ALT\u RIGHT

我想模拟两个键,例如SHIFT+A,但是

 adb shell input keyevent SHIFT_LEFT; keyevent A

结果仅在屏幕上显示一个简单的
a

如果需要Shift+a,则必须按以下顺序执行

Press shift
Press A
Release A
Release shift
这可以通过使用

命令格式:sendevent设备类型代码值

[command]     [device]             [type]    [code]   [value]
sendevent    /dev/input/event0    1          229      1
/dev/input/event0是将其发送到的设备

[类型]1对我来说是未知的(可能是设备上物理按钮的代码)

[code]229是仿真器的菜单按钮

[值]1为向下键或按下键(用于向上键或向上键使用0)

我编写了一个批处理文件,用于将事件发送到设备,如下所示:

adb -s emulator-5554 shell sendevent /dev/input/event0 1 229 1
adb -s emulator-5554 shell sendevent /dev/input/event0 1 229 0

对于maj,您可以输入文本“A”@njzk2,我知道,这只是一个示例。我真正想要的符号被认为是Unicode字符。我有Ctrl+N的代码段不起作用。知道吗?你打算用Ctrl*做什么?你的android设备上也有Ctrl。如果是这样的话,你可能想编写程序并在android设备上获得实际的键码。在我的应用程序中,我使用了一组快捷键Ctrl+N,Ctrl+C也验证了键码是否正确。