【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 键

bash 复制代码
adb shell input keyevent KEYCODE_HOME
# 或简写(数字代码)
adb shell input keyevent 3

(2)模拟返回键

bash 复制代码
adb shell input keyevent KEYCODE_BACK
# 或
adb shell input keyevent 4

(3)模拟删除键(Backspace)

bash 复制代码
adb shell input keyevent KEYCODE_DEL
# 或
adb shell input keyevent 67

(4)模拟 Delete 键(删除光标后字符)

bash 复制代码
adb shell input keyevent KEYCODE_FORWARD_DEL
# 或
adb shell input keyevent 112

(5)模拟电源键(锁屏/唤醒)

bash 复制代码
adb shell input keyevent KEYCODE_POWER
# 或
adb shell input keyevent 26

(6)模拟音量调节

bash 复制代码
adb shell input keyevent KEYCODE_VOLUME_UP    # 音量+
adb shell input keyevent KEYCODE_VOLUME_DOWN  # 音量-
adb shell input keyevent KEYCODE_VOLUME_MUTE  # 静音(部分设备支持)

(7)模拟方向键(游戏/导航)

bash 复制代码
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)模拟回车键(发送消息/确认)

bash 复制代码
adb shell input keyevent KEYCODE_ENTER
# 或
adb shell input keyevent 66

(9)模拟空格键

bash 复制代码
adb shell input keyevent KEYCODE_SPACE
# 或
adb shell input keyevent 62

(10)模拟最近任务键(Android 10+)

bash 复制代码
adb shell input keyevent KEYCODE_APP_SWITCH
# 或
adb shell input keyevent 187

3. 特殊按键(需系统支持)

(1)模拟截图(部分设备)

bash 复制代码
adb shell input keyevent KEYCODE_SYSRQ
# 或
adb shell screencap -p /sdcard/screen.png  # 更可靠的截图方式

(2)模拟通知栏(部分 ROM 支持)

bash 复制代码
# 方法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 + 延迟)

bash 复制代码
# 模拟长按 Home 键(1秒)
adb shell input keyevent KEYCODE_HOME && sleep 1 && adb shell input keyevent KEYCODE_HOME

4. 完整按键代码表

参考 Android 官方文档:KeyEvent.java

或运行以下命令查看所有支持的按键:

bash 复制代码
adb shell dumpsys input
# 或
adb shell getevent -l  # 查看设备支持的原始事件(需 Root)

5. 注意事项

  1. 部分按键可能无效
    • 某些厂商 ROM(如小米、华为)可能屏蔽了部分按键(如 KEYCODE_MENUKEYCODE_SEARCH)。
  2. Android 版本差异
    • Android 10+ 移除了 KEYCODE_MENU,改用 KEYCODE_APP_SWITCH 替代最近任务键。
  3. 虚拟按键 vs 物理按键
    • KEYCODE_HOMEKEYCODE_BACK 是虚拟按键,KEYCODE_VOLUME_UP 是物理按键。
  4. 更可靠的替代方案
    • 如果 keyevent 无效,可以尝试 input tap(模拟点击坐标)或 adb shell am(发送广播)。

总结

需求 命令示例
Home 键 adb shell input keyevent KEYCODE_HOMEadb shell input keyevent 3
返回键 adb shell input keyevent KEYCODE_BACKadb shell input keyevent 4
删除键(Backspace) adb shell input keyevent KEYCODE_DELadb shell input keyevent 67
Delete 键 adb shell input keyevent KEYCODE_FORWARD_DELadb shell input keyevent 112
电源键 adb shell input keyevent KEYCODE_POWERadb shell input keyevent 26
截图 adb shell screencap -p /sdcard/screen.png(推荐)

如果某些按键无效,建议改用 input tap 模拟点击scrcpy 手动操作

相关推荐
00后程序员张14 小时前
Android证书绑定抓包失败?Android SSL Pinning绕过实战指南
android·网络协议·计算机网络·网络安全·adb·https·ssl
九皇叔叔3 天前
MySQL ORDER BY 性能优化详解:Using filesort、联合索引、ASC/DESC 与覆盖索引
android·adb
firstacui4 天前
Mysql调优
android·mysql·adb
醉颜凉4 天前
MySQL 8 忘记 root 密码?这两种方法帮你轻松解决
数据库·mysql·adb
2601_962063235 天前
【Spring Boot】掌握 Spring 事务:隔离级别与传播机制解读与应用
spring boot·spring·adb
小成很成6 天前
mysql 8.0.21 升级 mysql 8.0.45(经过生产环境验证)
android·mysql·adb
2501_916007477 天前
免费抓包工具 Windows 和 Mac 怎么选?根据平台来选择工具
网络协议·计算机网络·网络安全·ios·adb·https·udp
2501_916008898 天前
iOS App 请求地址查看,不用配置看到 App 调了哪些接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
码云数智-园园9 天前
PHP 性能优化实战:从 3s 到 300ms,我是怎么优化一个接口的?
android·adb