跳转到内容

keys - 按键模拟 ​

更新: 2026/9/29 字数: 0 字 时长: 0 分钟

按键模拟部分提供了一些模拟物理按键的全局函数,包括Home、音量键、照相键等,有的函数依赖于无障碍服务,有的函数依赖于root权限。

一般来说,以大写字母开头的函数都依赖于root权限。执行此类函数时,如果没有root权限,则函数执行后没有效果,并会在控制台输出一个警告。

视频教程 ​

⚠️ 观看提示:哔哩哔哩默认 360P 清晰度,建议手动切换至 720P 或高清画质

按键模拟方式总览 ​

不同按键模拟方式依赖的系统权限和实现原理不同,各有适用场景。其中:

  • 无障碍:最常用,兼容性高,适用于绝大多数应用场景
  • HID:通过外置硬件模拟输入,设备端无需开启无障碍、USB调试、无线调试 或 Root,具备更强的环境隔离性,也是目前最安全的方式
  • Shell:适用于已授权 Shizuku 或 Root 的设备
  • ShellHttp:通过 WiFi-无线调试 或 OTG-USB 调试 或 Root 实现控制,支持 ADB 命令和 多指触控 操作
  • RootAutomator:适用于已授权 Root 的设备

各按键模拟方式对比

按键模拟方式权限要求兼容性推荐
无障碍无障碍服务⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
HID外置 ESP32 / 多模 HID 硬件⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
ShellShizuku / Root⭐⭐⭐⭐⭐⭐⭐
ShellHttp无线调试(Wi-Fi) / USB 调试 / Root⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
RootAutomatorRoot⭐⭐⭐⭐⭐⭐⭐⭐

使用无障碍服务实现按键模拟 ​

back() ​

  • 返回 {boolean}

模拟按下返回键。返回是否执行成功。 此函数依赖于无障碍服务。

home() ​

  • 返回 {boolean}

模拟按下Home键。返回是否执行成功。 此函数依赖于无障碍服务。

powerDialog() ​

  • 返回 {boolean}

弹出电源键菜单。返回是否执行成功。 此函数依赖于无障碍服务。

notifications() ​

  • 返回 {boolean}

拉出通知栏。返回是否执行成功。 此函数依赖于无障碍服务。

quickSettings() ​

  • 返回 {boolean}

显示快速设置(下拉通知栏到底)。返回是否执行成功。 此函数依赖于无障碍服务。

recents() ​

  • 返回 {boolean}

显示最近任务。返回是否执行成功。 此函数依赖于无障碍服务。

splitScreen() ​

  • 返回 {boolean}

分屏。返回是否执行成功。 此函数依赖于无障碍服务, 并且需要系统自身功能的支持。

使用 HID 实现按键模拟 ​

具体可参阅 HID 键鼠自动化控制指南

使用 shell 实现按键模拟 ​

具体可参阅 Shell 命令

使用 shellHttp 实现按键模拟 ​

具体可参阅 Shell HTTP 命令

使用 root 权限实现按键模拟 ​

Home() ​

模拟按下Home键。 此函数依赖于root权限。

Back() ​

模拟按下返回键。 此函数依赖于root权限。

Power() ​

模拟按下电源键。 此函数依赖于root权限。

模拟按下菜单键。 此函数依赖于root权限。

VolumeUp() ​

按下音量上键。 此函数依赖于root权限。

VolumeDown() ​

按键音量下键。 此函数依赖于root权限。

Camera() ​

模拟按下照相键。

Up() ​

模拟按下物理按键上。 此函数依赖于root权限。

Down() ​

模拟按下物理按键下。 此函数依赖于root权限。

Left() ​

模拟按下物理按键左。 此函数依赖于root权限。

模拟按下物理按键右。 此函数依赖于root权限。

OK() ​

模拟按下物理按键确定。 此函数依赖于root权限。

Text(text) ​

  • text {string} 要输入的文字,只能为英文或英文符号 输入文字text。例如Text("aaa");

KeyCode(code) ​

  • code {number} | {string} 要按下的按键的数字代码或名称。参见下表。 模拟物理按键。例如KeyCode(29)和KeyCode("KEYCODE_A")是按下A键。

附录: KeyCode对照表 ​

KeyCodeKeyEvent value
KEYCODE_MENU1
KEYCODE_SOFT_RIGHT2
KEYCODE_HOME3
KEYCODE_BACK4
KEYCODE_CALL5
KEYCODE_ENDCALL6
KEYCODE_07
KEYCODE_18
KEYCODE_29
KEYCODE_310
KEYCODE_411
KEYCODE_512
KEYCODE_613
KEYCODE_714
KEYCODE_815
KEYCODE_916
KEYCODE_STAR17
KEYCODE_POUND18
KEYCODE_DPAD_UP19
KEYCODE_DPAD_DOWN20
KEYCODE_DPAD_LEFT21
KEYCODE_DPAD_RIGHT22
KEYCODE_DPAD_CENTER23
KEYCODE_VOLUME_UP24
KEYCODE_VOLUME_DOWN25
KEYCODE_POWER26
KEYCODE_CAMERA27
KEYCODE_CLEAR28
KEYCODE_A29
KEYCODE_B30
KEYCODE_C31
KEYCODE_D32
KEYCODE_E33
KEYCODE_F34
KEYCODE_G35
KEYCODE_H36
KEYCODE_I37
KEYCODE_J38
KEYCODE_K39
KEYCODE_L40
KEYCODE_M41
KEYCODE_N42
KEYCODE_O43
KEYCODE_P44
KEYCODE_Q45
KEYCODE_R46
KEYCODE_S47
KEYCODE_T48
KEYCODE_U49
KEYCODE_V50
KEYCODE_W51
KEYCODE_X52
KEYCODE_Y53
KEYCODE_Z54
KEYCODE_COMMA55
KEYCODE_PERIOD56
KEYCODE_ALT_LEFT57
KEYCODE_ALT_RIGHT58
KEYCODE_SHIFT_LEFT59
KEYCODE_SHIFT_RIGHT60
KEYCODE_TAB61
KEYCODE_SPACE62
KEYCODE_SYM63
KEYCODE_EXPLORER64
KEYCODE_ENVELOPE65
KEYCODE_ENTER66
KEYCODE_DEL67
KEYCODE_GRAVE68
KEYCODE_MINUS69
KEYCODE_EQUALS70
KEYCODE_LEFT_BRACKET71
KEYCODE_RIGHT_BRACKET72
KEYCODE_BACKSLASH73
KEYCODE_SEMICOLON74
KEYCODE_APOSTROPHE75
KEYCODE_SLASH76
KEYCODE_AT77
KEYCODE_NUM78
KEYCODE_HEADSETHOOK79
KEYCODE_FOCUS80
KEYCODE_PLUS81
KEYCODE_MENU82
KEYCODE_NOTIFICATION83
KEYCODE_SEARCH84
TAG_LAST_ KEYCODE85