跳转到内容

keys - 按键模拟

更新: 2026/3/2 字数: 0 字 时长: 0 分钟

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

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

视频教程

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

按键模拟方式总览

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

  • 无障碍:最常用,兼容性高,适用于绝大多数应用场景
  • HID:通过外置硬件模拟输入,设备端无需开启无障碍、USB调试、无线调试 或 Root,具备更强的环境隔离性,也是目前最安全的方式
  • Shell:适用于已授权 ShizukuRoot 的设备
  • 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