如何通过ADB/Shell在Android系统中模拟Ctrl+Z组合按键触发
ADB模拟Ctrl+Z组合快捷键方案
无Root通用方案(安卓8.0及以上适用)
系统自带的input命令原生支持组合键触发,无需手动处理按键按下/松开的时序,直接执行以下命令即可:
adb shell input keycombination 114 57
- 该命令会自动完成「按下Ctrl→按下Z→松开Z→松开Ctrl」的完整按键逻辑,兼容性覆盖绝大多数支持外接键盘快捷键的应用。
- 如果需要模拟其他组合快捷键,替换对应按键的keycode即可,比如Ctrl+Y只需将上述命令中的57替换为Y对应的keycode。
Root权限方案(全安卓版本适用)
如果系统版本低于8.0,或是上述方案不生效,可以用sendevent直接向输入系统上报按键事件,步骤如下:
- 先执行
adb shell su -c getevent -il找到设备上键盘对应的输入设备路径,格式通常为/dev/input/eventX(X为数字)。 - 替换下方命令中的
[输入设备路径]后执行即可:
adb shell su -c " sendevent [输入设备路径] 1 114 1 sendevent [输入设备路径] 0 0 0 sendevent [输入设备路径] 1 57 1 sendevent [输入设备路径] 0 0 0 sendevent [输入设备路径] 1 57 0 sendevent [输入设备路径] 0 0 0 sendevent [输入设备路径] 1 114 0 sendevent [输入设备路径] 0 0 0 "
- 命令中最后的1代表按键按下,0代表按键抬起,中间的
sendevent [输入设备路径] 0 0 0是事件同步指令,每次按键状态变更后都需要发送,否则系统不会处理对应的按键事件。
注意事项
部分应用的快捷键逻辑为独立实现,若发送命令后无响应,请先确认应用本身支持外接键盘触发Ctrl+Z快捷键,再排查输入设备路径、按键码是否匹配。
内容的提问来源于stack exchange,提问作者Rye
相关产品推荐
相关产品推荐

