【ADB】常用按键代码:adb的所有模拟按键
在 Android 的 adb shell input
命令中,可以通过 keyevent
模拟 几乎所有物理按键(如 Home、返回、音量、电源等),以及部分 虚拟按键(如删除、回车、菜单等)。以下是完整的 按键代码列表 和 常用示例:
1. 常用按键代码(Android KeyEvent)
按键名称 | 代码 (KEYCODE_ ) | 说明 |
---|---|---|
Home 键 | KEYCODE_HOME | 3 |
返回键 | KEYCODE_BACK | 4 |
电源键 | KEYCODE_POWER | 26 |
音量+ | KEYCODE_VOLUME_UP | 24 |
音量- | KEYCODE_VOLUME_DOWN | 25 |
菜单键 | KEYCODE_MENU | 82 (部分设备已废弃) |
搜索键 | KEYCODE_SEARCH | 84 (部分设备已废弃) |
回车键 | KEYCODE_ENTER | 66 |
删除键(Backspace) | KEYCODE_DEL | 67 (删除光标前字符) |
删除键(Delete) | KEYCODE_FORWARD_DEL | 112 (删除光标后字符) |
空格键 | KEYCODE_SPACE | 62 |
Tab 键 | KEYCODE_TAB | 61 |
方向键(上) | KEYCODE_DPAD_UP | 19 |
方向键(下) | KEYCODE_DPAD_DOWN | 20 |
方向键(左) | KEYCODE_DPAD_LEFT | 21 |
方向键(右) | KEYCODE_DPAD_RIGHT | 22 |
切换输入法 | KEYCODE_SWITCH_CHARSET | 92 (部分设备支持) |
截图(部分设备) | KEYCODE_SYSRQ | 120 (需系统支持) |
最近任务键 | KEYCODE_APP_SWITCH | 187 (Android 10+ 默认) |
通知栏 | KEYCODE_NOTIFICATION | 无(部分 ROM 支持 KEYCODE_HEADSETHOOK + 组合键) |
2. 常用命令示例
(1)模拟 Home 键
adb shell input keyevent KEYCODE_HOME
# 或简写(数字代码)
adb shell input keyevent 3
(2)模拟返回键
adb shell input keyevent KEYCODE_BACK
# 或
adb shell input keyevent 4
(3)模拟删除键(Backspace)
adb shell input keyevent KEYCODE_DEL
# 或
adb shell input keyevent 67
(4)模拟 Delete 键(删除光标后字符)
adb shell input keyevent KEYCODE_FORWARD_DEL
# 或
adb shell input keyevent 112
(5)模拟电源键(锁屏/唤醒)
adb shell input keyevent KEYCODE_POWER
# 或
adb shell input keyevent 26
(6)模拟音量调节
adb shell input keyevent KEYCODE_VOLUME_UP # 音量+
adb shell input keyevent KEYCODE_VOLUME_DOWN # 音量-
adb shell input keyevent KEYCODE_VOLUME_MUTE # 静音(部分设备支持)
(7)模拟方向键(游戏/导航)
adb shell input keyevent KEYCODE_DPAD_UP # 上
adb shell input keyevent KEYCODE_DPAD_DOWN # 下
adb shell input keyevent KEYCODE_DPAD_LEFT # 左
adb shell input keyevent KEYCODE_DPAD_RIGHT # 右
(8)模拟回车键(发送消息/确认)
adb shell input keyevent KEYCODE_ENTER
# 或
adb shell input keyevent 66
(9)模拟空格键
adb shell input keyevent KEYCODE_SPACE
# 或
adb shell input keyevent 62
(10)模拟最近任务键(Android 10+)
adb shell input keyevent KEYCODE_APP_SWITCH
# 或
adb shell input keyevent 187
3. 特殊按键(需系统支持)
(1)模拟截图(部分设备)
adb shell input keyevent KEYCODE_SYSRQ
# 或
adb shell screencap -p /sdcard/screen.png # 更可靠的截图方式
(2)模拟通知栏(部分 ROM 支持)
# 方法1:使用 KEYCODE_HEADSETHOOK + 组合键(不保证通用)
adb shell input keyevent KEYCODE_HEADSETHOOK
# 方法2:使用 ADB 命令(需 Root)
adb shell am broadcast -a android.intent.action.EXPAND_STATUS_BAR
(3)模拟长按按键(需 input tap
+ 延迟)
# 模拟长按 Home 键(1秒)
adb shell input keyevent KEYCODE_HOME && sleep 1 && adb shell input keyevent KEYCODE_HOME
4. 完整按键代码表
参考 Android 官方文档:KeyEvent.java
或运行以下命令查看所有支持的按键:
adb shell dumpsys input
# 或
adb shell getevent -l # 查看设备支持的原始事件(需 Root)
5. 注意事项
- 部分按键可能无效
- 某些厂商 ROM(如小米、华为)可能屏蔽了部分按键(如
KEYCODE_MENU
、KEYCODE_SEARCH
)。
- 某些厂商 ROM(如小米、华为)可能屏蔽了部分按键(如
- Android 版本差异
- Android 10+ 移除了
KEYCODE_MENU
,改用KEYCODE_APP_SWITCH
替代最近任务键。
- Android 10+ 移除了
- 虚拟按键 vs 物理按键
KEYCODE_HOME
、KEYCODE_BACK
是虚拟按键,KEYCODE_VOLUME_UP
是物理按键。
- 更可靠的替代方案
- 如果
keyevent
无效,可以尝试input tap
(模拟点击坐标)或adb shell am
(发送广播)。
- 如果
总结
需求 | 命令示例 |
---|---|
Home 键 | adb shell input keyevent KEYCODE_HOME 或 adb shell input keyevent 3 |
返回键 | adb shell input keyevent KEYCODE_BACK 或 adb shell input keyevent 4 |
删除键(Backspace) | adb shell input keyevent KEYCODE_DEL 或 adb shell input keyevent 67 |
Delete 键 | adb shell input keyevent KEYCODE_FORWARD_DEL 或 adb shell input keyevent 112 |
电源键 | adb shell input keyevent KEYCODE_POWER 或 adb shell input keyevent 26 |
截图 | adb shell screencap -p /sdcard/screen.png (推荐) |
如果某些按键无效,建议改用 input tap
模拟点击 或 scrcpy
手动操作。