You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

三星J7(Android8.1.0)ADB sendevent组合键实现方法咨询

实现Android设备上组合键的KeyDown/KeyUp分步操作

问题根源

你之前用sendevent操作/dev/input/event6无效,是因为这个设备是触摸屏(sec_touchscreen),只处理触摸手势,根本不支持普通文本按键的KEY事件(比如KEY_A=30)。要实现组合键,必须找对能处理标准按键事件的输入设备,或者用更省心的input keyevent命令序列。


方法一:用input keyevent模拟组合键分步操作

input keyevent会自动匹配系统正确的输入设备,不需要手动指定,直接就能模拟按键的按下和松开。以Ctrl+A为例:

# 按住Ctrl键(KeyDown)
adb shell input keyevent --down 113
# 按下A键再松开
adb shell input keyevent --down 29
adb shell input keyevent --up 29
# 松开Ctrl键(KeyUp)
adb shell input keyevent --up 113

按键码对应:KEYCODE_CTRL_LEFT=113,KEYCODE_A=29,其他组合键的按键码可对应Android标准按键码。


方法二:用sendevent操作正确的输入设备

如果一定要用sendevent,先找对设备:

  1. 重新执行adb shell getevent -p,寻找KEY (0001)下包含大量按键码的设备(比如左Ctrl、字母键等)。如果设备没有物理键盘,需依赖系统虚拟键盘对应的输入设备。
  2. 假设找到的设备是/dev/input/eventX,模拟Ctrl+A的命令序列如下(按键码以设备实际输出为准,示例中左Ctrl=254,A=30):
# Ctrl键按下
adb shell sendevent /dev/input/eventX 1 254 1
adb shell sendevent /dev/input/eventX 0 0 0
# A键按下
adb shell sendevent /dev/input/eventX 1 30 1
adb shell sendevent /dev/input/eventX 0 0 0
# A键松开
adb shell sendevent /dev/input/eventX 1 30 0
adb shell sendevent /dev/input/eventX 0 0 0
# Ctrl键松开
adb shell sendevent /dev/input/eventX 1 254 0
adb shell sendevent /dev/input/eventX 0 0 0

注意:不同设备按键码可能存在差异,必须严格对应getevent -p的输出。如果找不到支持标准按键的设备,优先使用方法一。


测试提示

尽量在系统自带的文本输入框(比如短信、备忘录)中测试,避免第三方应用拦截组合键事件。

内容的提问来源于stack exchange,提问作者Văn Chiến Trương

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:30:59