Android 支持各种键盘设备,包括特殊功能键盘(音量和电源控件)、紧凑型嵌入式 QWERTY 键盘以及全功能 PC 式外接键盘。
本文档仅介绍物理键盘。有关软键盘(输入法编辑器)的信息,请参阅 Android SDK。
键盘分类
如果满足以下任一条件,则输入设备被归类为键盘:
-
输入设备报告存在键盘上使用的任何 Linux 键代码,包括
0
到0xff
或KEY_OK
到KEY_MAX
。 -
输入设备报告存在操纵杆和游戏手柄上使用的任何 Linux 键代码,包括
BTN_0
到BTN_9
、BTN_TRIGGER
到BTN_DEAD
或BTN_A
到BTN_THUMBR
。
操纵杆目前被归类为键盘,因为操纵杆和游戏手柄按钮通过 EV_KEY
事件报告,方式与键盘按键的报告方式相同。因此,操纵杆和游戏手柄也使用按键映射文件进行配置。
一旦输入设备被归类为键盘,系统就会为该键盘加载输入设备配置文件和键盘布局。
然后,系统会尝试确定设备的附加特性。
-
如果输入设备有任何键映射到
KEYCODE_Q
,则该设备被视为具有字母键盘(而不是数字键盘)。字母键盘功能在资源Configuration
对象中报告为KEYBOARD_QWERTY
。 -
如果输入设备有任何键映射到
KEYCODE_DPAD_UP
、KEYCODE_DPAD_DOWN
、KEYCODE_DPAD_LEFT
、KEYCODE_DPAD_RIGHT
和KEYCODE_DPAD_CENTER
(所有键都必须存在),则该设备被视为具有方向键键盘。方向键键盘功能在资源Configuration
对象中报告为NAVIGATION_DPAD
。 -
如果输入设备有任何键映射到
KEYCODE_BUTTON_A
或其他游戏手柄相关按键,则该设备被视为具有游戏手柄。
键盘驱动程序要求
-
键盘驱动程序应仅注册它们实际支持的按键的键代码。注册过多的键代码可能会混淆设备分类算法,或导致系统错误地检测设备支持的键盘功能。
-
键盘驱动程序应使用
EV_KEY
报告按键按下事件,使用值0
表示按键已释放,值1
表示按键已按下,值大于或等于2
表示按键正在自动重复。 -
Android 执行自己的键盘重复操作。应在驱动程序中禁用自动重复功能。
-
键盘驱动程序可以选择通过在按下按键时发送带有
MSC_SCANCODE
的EV_MSC
和指示用法或扫描代码的值来指示 HID 用法或低级扫描代码。Android 目前不使用此信息。 -
当
EV_LED
写入设备时,键盘驱动程序应支持设置 LED 状态。hid-input
驱动程序会自动处理此问题。在撰写本文时,Android 使用LED_CAPSLOCK
、LED_SCROLLLOCK
和LED_NUMLOCK
。仅当键盘实际具有关联的指示灯时,才需要支持这些 LED。 -
用于嵌入式键盘(例如,使用 GPIO 矩阵)的键盘驱动程序应确保为设备进入睡眠状态时仍按下的任何按键发送值为
0
的EV_KEY
事件。否则,按键可能会卡住,并会永远自动重复。
键盘操作
以下是 Android 上键盘操作的简要概述。
-
EventHub
从evdev
驱动程序读取原始事件,并使用键盘的按键布局图将 Linux 键代码(有时称为扫描码)映射到 Android 键代码。 -
InputReader
会使用原始事件并更新元键状态。例如,如果按下或释放了左 Shift 键,则读取器将相应地设置或重置META_SHIFT_LEFT_ON
和META_SHIFT_ON
位。 -
InputReader
会将按键事件通知给InputDispatcher
。 -
InputDispatcher
通过调用WindowManagerPolicy.interceptKeyBeforeQueueing
询问WindowManagerPolicy
如何处理按键事件。此方法是关键路径的一部分,该路径负责在按下某些按键时唤醒设备。EventHub
有效地在此关键路径上保持唤醒锁定,以确保它能够运行完成。 -
如果当前正在使用
InputFilter
,则InputDispatcher
会为其提供机会来使用或转换按键。InputFilter
可用于实现低级别的全系统辅助功能策略。 -
InputDispatcher
将按键加入队列,以便在调度线程上进行处理。 -
当
InputDispatcher
将按键从队列中移除时,它会通过调用WindowManagerPolicy.interceptKeyBeforeDispatching
,再次让WindowManagerPolicy
有机会拦截按键事件。此方法处理系统快捷方式和其他功能。 -
然后,
InputDispatcher
识别按键事件目标(焦点窗口)并等待它们准备就绪。然后,InputDispatcher
将按键事件传递给应用。 -
在应用内部,按键事件会沿着视图层级结构向下传播到焦点视图,以进行预输入法按键调度。
-
如果在预输入法调度中未处理按键事件并且正在使用输入法,则按键事件将传递到输入法。
-
如果输入法未消耗按键事件,则按键事件会沿着视图层级结构向下传播到焦点视图,以进行标准按键调度。
-
应用会向
InputDispatcher
报告按键事件是否已被消耗。如果事件未被消耗,则InputDispatcher
调用WindowManagerPolicy.dispatchUnhandledKey
以应用“回退”行为。根据回退操作,可以使用不同的键代码重新启动按键事件调度周期。例如,如果应用不处理KEYCODE_ESCAPE
,则系统可能会将按键事件重新调度为KEYCODE_BACK
。
键盘配置
键盘行为由键盘的按键布局、按键字符图和输入设备配置决定。
有关参与键盘配置的文件的更多详细信息,请参阅以下部分
属性
以下输入设备配置属性用于键盘。
keyboard.layout
定义: keyboard.layout
= <名称>
指定与输入设备关联的按键布局文件的名称,不包括 .kl
扩展名。如果找不到此文件,输入系统将使用默认按键布局。
名称中的空格在查找期间会转换为下划线。
有关更多详细信息,请参阅按键布局文件文档。
keyboard.characterMap
定义: keyboard.characterMap
= <名称>
指定与输入设备关联的按键字符图文件的名称,不包括 .kcm
扩展名。如果找不到此文件,输入系统将使用默认按键字符图。
名称中的空格在查找期间会转换为下划线。
有关更多详细信息,请参阅按键字符图文件文档。
keyboard.orientationAware
定义: keyboard.orientationAware
= 0
| 1
指定键盘是否应响应显示屏方向更改。
-
如果值为
1
,则当关联的显示屏方向更改时,方向键区按键会旋转。 -
如果值为
0
,则键盘不受显示屏方向更改的影响。
默认值为 0
。
方向感知用于支持方向键区按键的旋转,例如在 Motorola Droid 上。例如,当设备从其自然方向顺时针旋转 90 度时,KEYCODE_DPAD_UP
将被重新映射以产生 KEYCODE_DPAD_RIGHT
,因为当设备以此方向握持时,“向上”键最终指向“向右”。
keyboard.builtIn
定义: keyboard.builtIn
= 0
| 1
指定键盘是否为内置(物理连接)键盘。
如果设备名称以 -keypad
结尾,则默认值为 1
,否则为 0
。
内置键盘始终分配设备 ID 0
。其他非内置键盘分配唯一的非零设备 ID。
对于内置键盘,使用 ID 0
对于保持与 KeyCharacterMap.BUILT_IN_KEYBOARD
字段的兼容性非常重要,该字段指定内置键盘的 ID,其值为 0
。此字段已在 API 中弃用,但较旧的应用可能仍在使用它。
特殊功能键盘(其按键字符图指定 SPECIAL_FUNCTION
类型)永远不会注册为内置键盘,无论此属性的设置如何。这是因为特殊功能键盘根据定义不打算用于通用打字。
示例配置
# This is an example input device configuration file for a built-in # keyboard that has a DPad. # The keyboard is internal because it is part of the device. device.internal = 1 # The keyboard is the default built-in keyboard so it should be assigned # an id of 0. keyboard.builtIn = 1 # The keyboard includes a DPad which is mounted on the device. As the device # is rotated the orientation of the DPad rotates along with it, so the DPad must # be aware of the display orientation. This ensures that pressing 'up' on the # DPad always means 'up' from the perspective of the user, even when the entire # device has been rotated. keyboard.orientationAware = 1
兼容性说明
在 Honeycomb 之前,键盘输入映射器不使用任何配置属性。所有键盘都假定为物理连接且方向感知。默认按键布局和按键字符图命名为 qwerty
而不是 Generic
。按键字符图格式也非常不同,并且框架不支持 PC 风格的全键盘或外部键盘。
将设备升级到 Honeycomb 时,请确保创建或更新必要的配置和按键图文件。
HID 用法、Linux 键代码和 Android 键代码
系统使用几个不同的标识符来引用按键,具体取决于抽象层。
对于 HID 设备,每个按键都有关联的 HID 用法。Linux hid-input
驱动程序以及相关的供应商和设备特定 HID 驱动程序负责解析 HID 报告并将 HID 用法映射到 Linux 键代码。
当 Android 从 Linux 内核读取 EV_KEY
事件时,它会根据设备的按键布局文件将每个 Linux 键代码转换为其对应的 Android 键代码。
当按键事件调度到应用时,android.view.KeyEvent
实例会将 Linux 键代码报告为 getScanCode()
的值,并将 Android 键代码报告为 getKeyCode()
的值。对于框架而言,只有 getKeyCode()
的值才重要。
请注意,Android 本身不使用 HID 用法信息,也不会将其传递给应用。
代码表
下表显示了 HID 用法、Linux 键代码和 Android 键代码之间的相互关系。
LKC 列指定了十六进制的 Linux 键代码。
AKC 列指定了十六进制的 Android 键代码。
“注释”列指的是表格后发布的注释。
“版本”列指定了 Android 平台的第一个版本,该版本在其默认按键图中包含了此按键。在默认按键图在版本之间发生更改的情况下,会显示多行。指示的最旧版本为 1.6。
-
在 Gingerbread (2.3) 及更早版本中,默认按键图为
qwerty.kl
。此按键图仅供 Android 模拟器使用,并非旨在用于支持任意外部键盘。尽管如此,一些 OEM 在平台中添加了蓝牙键盘支持,并依赖qwerty.kl
来提供必要的键盘映射。因此,对于正在为这些特定设备构建外围设备的 OEM 而言,这些较旧的映射可能很有意义。请注意,这些映射与当前的映射有很大不同,尤其是在HOME
键的处理方面。建议所有新的外围设备都应根据 Honeycomb 或更新的按键图(即标准 HID)进行开发。 -
从 Honeycomb (3.0) 开始,默认按键图为
Generic.kl
。此按键图旨在支持完整的 PC 样式键盘。标准 HID 键盘的大多数功能都应该可以直接使用。
键代码映射可能因 Linux 内核和 Android 版本而异。当已知 Android 默认按键图发生更改时,会在版本列中指示出来。
特定于设备的 HID 驱动程序和按键图可能会应用与此处指示的不同的映射。
HID 键盘和小键盘页 (0x07)
HID 用法 | HID 用法名称 | LKC | Linux 键代码名称 | 版本 | AKC | Android 键代码名称 | 注释 |
---|---|---|---|---|---|---|---|
0x07 0x0001 | 键盘错误翻转 | ||||||
0x07 0x0002 | 键盘 POST 失败 | ||||||
0x07 0x0003 | 键盘错误未定义 | ||||||
0x07 0x0004 | 键盘 a 和 A | 0x001e | KEY_A | 1.6 | 0x001d | KEYCODE_A | 1 |
0x07 0x0005 | 键盘 b 和 B | 0x0030 | KEY_B | 1.6 | 0x001e | KEYCODE_B | 1 |
0x07 0x0006 | 键盘 c 和 C | 0x002e | KEY_C | 1.6 | 0x001f | KEYCODE_C | 1 |
0x07 0x0007 | 键盘 d 和 D | 0x0020 | KEY_D | 1.6 | 0x0020 | KEYCODE_D | 1 |
0x07 0x0008 | 键盘 e 和 E | 0x0012 | KEY_E | 1.6 | 0x0021 | KEYCODE_E | 1 |
0x07 0x0009 | 键盘 f 和 F | 0x0021 | KEY_F | 1.6 | 0x0022 | KEYCODE_F | 1 |
0x07 0x000a | 键盘 g 和 G | 0x0022 | KEY_G | 1.6 | 0x0023 | KEYCODE_G | 1 |
0x07 0x000b | 键盘 h 和 H | 0x0023 | KEY_H | 1.6 | 0x0024 | KEYCODE_H | 1 |
0x07 0x000c | 键盘 i 和 I | 0x0017 | KEY_I | 1.6 | 0x0025 | KEYCODE_I | 1 |
0x07 0x000d | 键盘 j 和 J | 0x0024 | KEY_J | 1.6 | 0x0026 | KEYCODE_J | 1 |
0x07 0x000e | 键盘 k 和 K | 0x0025 | KEY_K | 1.6 | 0x0027 | KEYCODE_K | 1 |
0x07 0x000f | 键盘 l 和 L | 0x0026 | KEY_L | 1.6 | 0x0028 | KEYCODE_L | 1 |
0x07 0x0010 | 键盘 m 和 M | 0x0032 | KEY_M | 1.6 | 0x0029 | KEYCODE_M | 1 |
0x07 0x0011 | 键盘 n 和 N | 0x0031 | KEY_N | 1.6 | 0x002a | KEYCODE_N | 1 |
0x07 0x0012 | 键盘 o 和 O | 0x0018 | KEY_O | 1.6 | 0x002b | KEYCODE_O | 1 |
0x07 0x0013 | 键盘 p 和 P | 0x0019 | KEY_P | 1.6 | 0x002c | KEYCODE_P | 1 |
0x07 0x0014 | 键盘 q 和 Q | 0x0010 | KEY_Q | 1.6 | 0x002d | KEYCODE_Q | 1 |
0x07 0x0015 | 键盘 r 和 R | 0x0013 | KEY_R | 1.6 | 0x002e | KEYCODE_R | 1 |
0x07 0x0016 | 键盘 s 和 S | 0x001f | KEY_S | 1.6 | 0x002f | KEYCODE_S | 1 |
0x07 0x0017 | 键盘 t 和 T | 0x0014 | KEY_T | 1.6 | 0x0030 | KEYCODE_T | 1 |
0x07 0x0018 | 键盘 u 和 U | 0x0016 | KEY_U | 1.6 | 0x0031 | KEYCODE_U | 1 |
0x07 0x0019 | 键盘 v 和 V | 0x002f | KEY_V | 1.6 | 0x0032 | KEYCODE_V | 1 |
0x07 0x001a | 键盘 w 和 W | 0x0011 | KEY_W | 1.6 | 0x0033 | KEYCODE_W | 1 |
0x07 0x001b | 键盘 x 和 X | 0x002d | KEY_X | 1.6 | 0x0034 | KEYCODE_X | 1 |
0x07 0x001c | 键盘 y 和 Y | 0x0015 | KEY_Y | 1.6 | 0x0035 | KEYCODE_Y | 1 |
0x07 0x001d | 键盘 z 和 Z | 0x002c | KEY_Z | 1.6 | 0x0036 | KEYCODE_Z | 1 |
0x07 0x001e | 键盘 1 和 ! | 0x0002 | KEY_1 | 1.6 | 0x0008 | KEYCODE_1 | 1 |
0x07 0x001f | 键盘 2 和 @ | 0x0003 | KEY_2 | 1.6 | 0x0009 | KEYCODE_2 | 1 |
0x07 0x0020 | 键盘 3 和 # | 0x0004 | KEY_3 | 1.6 | 0x000a | KEYCODE_3 | 1 |
0x07 0x0021 | 键盘 4 和 $ | 0x0005 | KEY_4 | 1.6 | 0x000b | KEYCODE_4 | 1 |
0x07 0x0022 | 键盘 5 和 % | 0x0006 | KEY_5 | 1.6 | 0x000c | KEYCODE_5 | 1 |
0x07 0x0023 | 键盘 6 和 ^ | 0x0007 | KEY_6 | 1.6 | 0x000d | KEYCODE_6 | 1 |
0x07 0x0024 | 键盘 7 和 & | 0x0008 | KEY_7 | 1.6 | 0x000e | KEYCODE_7 | 1 |
0x07 0x0025 | 键盘 8 和 * | 0x0009 | KEY_8 | 1.6 | 0x000f | KEYCODE_8 | 1 |
0x07 0x0026 | 键盘 9 和 ( | 0x000a | KEY_9 | 1.6 | 0x0010 | KEYCODE_9 | 1 |
0x07 0x0027 | 键盘 0 和 ) | 0x000b | KEY_0 | 1.6 | 0x0007 | KEYCODE_0 | 1 |
0x07 0x0028 | 键盘 Return (ENTER) | 0x001c | KEY_ENTER | 1.6 | 0x0042 | KEYCODE_ENTER | 1 |
0x07 0x0029 | 键盘 ESCAPE | 0x0001 | KEY_ESC | 3.0 | 0x006f | KEYCODE_ESCAPE | |
"" | "" | "" | "" | 2.3 | 0x0004 | KEYCODE_BACK | |
0x07 0x002a | 键盘 DELETE (Backspace) | 0x000e | KEY_BACKSPACE | 1.6 | 0x0043 | KEYCODE_DEL | |
0x07 0x002b | 键盘 Tab | 0x000f | KEY_TAB | 1.6 | 0x003d | KEYCODE_TAB | |
0x07 0x002c | 键盘 Spacebar | 0x0039 | KEY_SPACE | 1.6 | 0x003e | KEYCODE_SPACE | |
0x07 0x002d | 键盘 - 和 _ | 0x000c | KEY_MINUS | 1.6 | 0x0045 | KEYCODE_MINUS | 1 |
0x07 0x002e | 键盘 = 和 + | 0x000d | KEY_EQUAL | 1.6 | 0x0046 | KEYCODE_EQUALS | 1 |
0x07 0x002f | 键盘 [ 和 { | 0x001a | KEY_LEFTBRACE | 1.6 | 0x0047 | KEYCODE_LEFT_BRACKET | 1 |
0x07 0x0030 | 键盘 ] 和 } | 0x001b | KEY_RIGHTBRACE | 1.6 | 0x0048 | KEYCODE_RIGHT_BRACKET | 1 |
0x07 0x0031 | 键盘 \ 和 | | 0x002b | KEY_BACKSLASH | 1.6 | 0x0049 | KEYCODE_BACKSLASH | 1 |
0x07 0x0032 | 键盘 Non-US # 和 ~ | 0x002b | KEY_BACKSLASH | 1.6 | 0x0049 | KEYCODE_BACKSLASH | 1 |
0x07 0x0033 | 键盘 ; 和 | 0x0027 | KEY_SEMICOLON | 1.6 | 0x004a | KEYCODE_SEMICOLON | 1 |
0x07 0x0034 | 键盘 ' 和 " | 0x0028 | KEY_APOSTROPHE | 1.6 | 0x004b | KEYCODE_APOSTROPHE | 1 |
0x07 0x0035 | 键盘 ` 和 ~ | 0x0029 | KEY_GRAVE | 3.0 | 0x0044 | KEYCODE_GRAVE | 1 |
0x07 0x0036 | 键盘 , 和 < | 0x0033 | KEY_COMMA | 1.6 | 0x0037 | KEYCODE_COMMA | 1 |
0x07 0x0037 | 键盘 . 和 > | 0x0034 | KEY_DOT | 1.6 | 0x0038 | KEYCODE_PERIOD | 1 |
0x07 0x0038 | 键盘 / 和 ? | 0x0035 | KEY_SLASH | 1.6 | 0x004c | KEYCODE_SLASH | 1 |
0x07 0x0039 | 键盘 Caps Lock | 0x003a | KEY_CAPSLOCK | 3.0 | 0x0073 | KEYCODE_CAPS_LOCK | |
0x07 0x003a | 键盘 F1 | 0x003b | KEY_F1 | 3.0 | 0x0083 | KEYCODE_F1 | |
"" | "" | "" | "" | 1.6 | 0x0052 | KEYCODE_MENU | |
0x07 0x003b | 键盘 F2 | 0x003c | KEY_F2 | 3.0 | 0x0084 | KEYCODE_F2 | |
"" | "" | "" | "" | 1.6 | 0x0002 | KEYCODE_SOFT_RIGHT | |
0x07 0x003c | 键盘 F3 | 0x003d | KEY_F3 | 3.0 | 0x0085 | KEYCODE_F3 | |
"" | "" | "" | "" | 1.6 | 0x0005 | KEYCODE_CALL | |
0x07 0x003d | 键盘 F4 | 0x003e | KEY_F4 | 3.0 | 0x0086 | KEYCODE_F4 | |
"" | "" | "" | "" | 1.6 | 0x0006 | KEYCODE_ENDCALL | |
0x07 0x003e | 键盘 F5 | 0x003f | KEY_F5 | 3.0 | 0x0087 | KEYCODE_F5 | |
0x07 0x003f | 键盘 F6 | 0x0040 | KEY_F6 | 3.0 | 0x0088 | KEYCODE_F6 | |
0x07 0x0040 | 键盘 F7 | 0x0041 | KEY_F7 | 3.0 | 0x0089 | KEYCODE_F7 | |
0x07 0x0041 | 键盘 F8 | 0x0042 | KEY_F8 | 3.0 | 0x008a | KEYCODE_F8 | |
0x07 0x0042 | 键盘 F9 | 0x0043 | KEY_F9 | 3.0 | 0x008b | KEYCODE_F9 | |
0x07 0x0043 | 键盘 F10 | 0x0044 | KEY_F10 | 3.0 | 0x008c | KEYCODE_F10 | |
"" | "" | "" | "" | 2.3 | 0x0052 | KEYCODE_MENU | |
0x07 0x0044 | 键盘 F11 | 0x0057 | KEY_F11 | 3.0 | 0x008d | KEYCODE_F11 | |
0x07 0x0045 | 键盘 F12 | 0x0058 | KEY_F12 | 3.0 | 0x008e | KEYCODE_F12 | |
0x07 0x0046 | 键盘 Print Screen | 0x0063 | KEY_SYSRQ | 3.0 | 0x0078 | KEYCODE_SYSRQ | |
0x07 0x0047 | 键盘 Scroll Lock | 0x0046 | KEY_SCROLLLOCK | 3.0 | 0x0074 | KEYCODE_SCROLL_LOCK | |
0x07 0x0048 | 键盘 Pause | 0x0077 | KEY_PAUSE | 3.0 | 0x0079 | KEYCODE_BREAK | |
0x07 0x0049 | 键盘 Insert | 0x006e | KEY_INSERT | 3.0 | 0x007c | KEYCODE_INSERT | |
0x07 0x004a | 键盘 Home | 0x0066 | KEY_HOME | 3.0 | 0x007a | KEYCODE_MOVE_HOME | |
"" | "" | "" | "" | 1.6 | 0x0003 | KEYCODE_HOME | |
0x07 0x004b | 键盘 Page Up | 0x0068 | KEY_PAGEUP | 3.0 | 0x005c | KEYCODE_PAGE_UP | |
0x07 0x004c | 键盘 Delete Forward | 0x006f | KEY_DELETE | 3.0 | 0x0070 | KEYCODE_FORWARD_DEL | |
0x07 0x004d | 键盘 End | 0x006b | KEY_END | 3.0 | 0x007b | KEYCODE_MOVE_END | |
"" | "" | "" | "" | 1.6 | 0x0006 | KEYCODE_ENDCALL | |
0x07 0x004e | 键盘 Page Down | 0x006d | KEY_PAGEDOWN | 3.0 | 0x005d | KEYCODE_PAGE_DOWN | |
0x07 0x004f | 键盘 Right Arrow | 0x006a | KEY_RIGHT | 1.6 | 0x0016 | KEYCODE_DPAD_RIGHT | |
0x07 0x0050 | 键盘 Left Arrow | 0x0069 | KEY_LEFT | 1.6 | 0x0015 | KEYCODE_DPAD_LEFT | |
0x07 0x0051 | 键盘 Down Arrow | 0x006c | KEY_DOWN | 1.6 | 0x0014 | KEYCODE_DPAD_DOWN | |
0x07 0x0052 | 键盘 Up Arrow | 0x0067 | KEY_UP | 1.6 | 0x0013 | KEYCODE_DPAD_UP | |
0x07 0x0053 | 键盘 Num Lock 和 Clear | 0x0045 | KEY_NUMLOCK | 3.0 | 0x008f | KEYCODE_NUM_LOCK | |
0x07 0x0054 | 小键盘 / | 0x0062 | KEY_KPSLASH | 3.0 | 0x009a | KEYCODE_NUMPAD_DIVIDE | |
0x07 0x0055 | 小键盘 * | 0x0037 | KEY_KPASTERISK | 3.0 | 0x009b | KEYCODE_NUMPAD_MULTIPLY | |
0x07 0x0056 | 小键盘 - | 0x004a | KEY_KPMINUS | 3.0 | 0x009c | KEYCODE_NUMPAD_SUBTRACT | |
0x07 0x0057 | 小键盘 + | 0x004e | KEY_KPPLUS | 3.0 | 0x009d | KEYCODE_NUMPAD_ADD | |
0x07 0x0058 | 小键盘 ENTER | 0x0060 | KEY_KPENTER | 3.0 | 0x00a0 | KEYCODE_NUMPAD_ENTER | |
0x07 0x0059 | 小键盘 1 和 End | 0x004f | KEY_KP1 | 3.0 | 0x0091 | KEYCODE_NUMPAD_1 | |
0x07 0x005a | 小键盘 2 和 Down Arrow | 0x0050 | KEY_KP2 | 3.0 | 0x0092 | KEYCODE_NUMPAD_2 | |
0x07 0x005b | 小键盘 3 和 PageDn | 0x0051 | KEY_KP3 | 3.0 | 0x0093 | KEYCODE_NUMPAD_3 | |
0x07 0x005c | 小键盘 4 和 Left Arrow | 0x004b | KEY_KP4 | 3.0 | 0x0094 | KEYCODE_NUMPAD_4 | |
0x07 0x005d | 小键盘 5 | 0x004c | KEY_KP5 | 3.0 | 0x0095 | KEYCODE_NUMPAD_5 | |
0x07 0x005e | 小键盘 6 和 Right Arrow | 0x004d | KEY_KP6 | 3.0 | 0x0096 | KEYCODE_NUMPAD_6 | |
0x07 0x005f | 小键盘 7 和 Home | 0x0047 | KEY_KP7 | 3.0 | 0x0097 | KEYCODE_NUMPAD_7 | |
0x07 0x0060 | 小键盘 8 和 Up Arrow | 0x0048 | KEY_KP8 | 3.0 | 0x0098 | KEYCODE_NUMPAD_8 | |
0x07 0x0061 | 小键盘 9 和 Page Up | 0x0049 | KEY_KP9 | 3.0 | 0x0099 | KEYCODE_NUMPAD_9 | |
0x07 0x0062 | 小键盘 0 和 Insert | 0x0052 | KEY_KP0 | 3.0 | 0x0090 | KEYCODE_NUMPAD_0 | |
0x07 0x0063 | 小键盘 . 和 Delete | 0x0053 | KEY_KPDOT | 3.0 | 0x009e | KEYCODE_NUMPAD_DOT | |
0x07 0x0064 | 键盘 Non-US \ 和 | | 0x0056 | KEY_102ND | 4.0 | 0x0049 | KEYCODE_BACKSLASH | 1 |
0x07 0x0065 | 键盘 Application | 0x007f | KEY_COMPOSE | 3.0 | 0x0052 | KEYCODE_MENU | |
"" | "" | "" | "" | 1.6 | 0x0054 | KEYCODE_SEARCH | |
0x07 0x0066 | 键盘 Power | 0x0074 | KEY_POWER | 1.6 | 0x001a | KEYCODE_POWER | |
0x07 0x0067 | 小键盘 = | 0x0075 | KEY_KPEQUAL | 3.0 | 0x00a1 | KEYCODE_NUMPAD_EQUALS | |
0x07 0x0068 | 键盘 F13 | 0x00b7 | KEY_F13 | ||||
0x07 0x0069 | 键盘 F14 | 0x00b8 | KEY_F14 | ||||
0x07 0x006a | 键盘 F15 | 0x00b9 | KEY_F15 | ||||
0x07 0x006b | 键盘 F16 | 0x00ba | KEY_F16 | ||||
0x07 0x006c | 键盘 F17 | 0x00bb | KEY_F17 | ||||
0x07 0x006d | 键盘 F18 | 0x00bc | KEY_F18 | ||||
0x07 0x006e | 键盘 F19 | 0x00bd | KEY_F19 | ||||
0x07 0x006f | 键盘 F20 | 0x00be | KEY_F20 | ||||
0x07 0x0070 | 键盘 F21 | 0x00bf | KEY_F21 | ||||
0x07 0x0071 | 键盘 F22 | 0x00c0 | KEY_F22 | ||||
0x07 0x0072 | 键盘 F23 | 0x00c1 | KEY_F23 | ||||
0x07 0x0073 | 键盘 F24 | 0x00c2 | KEY_F24 | ||||
0x07 0x0074 | 键盘 Execute | 0x0086 | KEY_OPEN | ||||
0x07 0x0075 | 键盘 Help | 0x008a | KEY_HELP | ||||
0x07 0x0076 | 键盘 Menu | 0x0082 | KEY_PROPS | ||||
0x07 0x0077 | 键盘 Select | 0x0084 | KEY_FRONT | ||||
0x07 0x0078 | 键盘 Stop | 0x0080 | KEY_STOP | 3.0 | 0x0056 | KEYCODE_MEDIA_STOP | |
0x07 0x0079 | 键盘 Again | 0x0081 | KEY_AGAIN | ||||
0x07 0x007a | 键盘 Undo | 0x0083 | KEY_UNDO | ||||
0x07 0x007b | 键盘 Cut | 0x0089 | KEY_CUT | ||||
0x07 0x007c | 键盘 Copy | 0x0085 | KEY_COPY | ||||
0x07 0x007d | 键盘 Paste | 0x0087 | KEY_PASTE | ||||
0x07 0x007e | 键盘 Find | 0x0088 | KEY_FIND | ||||
0x07 0x007f | 键盘 Mute | 0x0071 | KEY_MUTE | 3.0 | 0x00a4 | KEYCODE_VOLUME_MUTE | |
0x07 0x0080 | 键盘 Volume Up | 0x0073 | KEY_VOLUMEUP | 1.6 | 0x0018 | KEYCODE_VOLUME_UP | |
0x07 0x0081 | 键盘 Volume Down | 0x0072 | KEY_VOLUMEDOWN | 1.6 | 0x0019 | KEYCODE_VOLUME_DOWN | |
0x07 0x0082 | 键盘 Locking Caps Lock | ||||||
0x07 0x0083 | 键盘 Locking Num Lock | ||||||
0x07 0x0084 | 键盘 Locking Scroll Lock | ||||||
0x07 0x0085 | 小键盘 Comma | 0x0079 | KEY_KPCOMMA | 3.0 | 0x009f | KEYCODE_NUMPAD_COMMA | |
0x07 0x0086 | 小键盘 Equal Sign | ||||||
0x07 0x0087 | 键盘 International1 | 0x0059 | KEY_RO | ||||
0x07 0x0088 | 键盘 International2 | 0x005d | KEY_KATAKANAHIRAGANA | ||||
0x07 0x0089 | 键盘 International3 | 0x007c | KEY_YEN | ||||
0x07 0x008a | 键盘 International4 | 0x005c | KEY_HENKAN | ||||
0x07 0x008b | 键盘 International5 | 0x005e | KEY_MUHENKAN | ||||
0x07 0x008c | 键盘 International6 | 0x005f | KEY_KPJPCOMMA | ||||
0x07 0x008d | 键盘 International7 | ||||||
0x07 0x008e | 键盘 International8 | ||||||
0x07 0x008f | 键盘 International9 | ||||||
0x07 0x0090 | 键盘 LANG1 | 0x007a | KEY_HANGEUL | ||||
0x07 0x0091 | 键盘 LANG2 | 0x007b | KEY_HANJA | ||||
0x07 0x0092 | 键盘 LANG3 | 0x005a | KEY_KATAKANA | ||||
0x07 0x0093 | 键盘 LANG4 | 0x005b | KEY_HIRAGANA | ||||
0x07 0x0094 | 键盘 LANG5 | 0x0055 | KEY_ZENKAKUHANKAKU | ||||
0x07 0x0095 | 键盘 LANG6 | ||||||
0x07 0x0096 | 键盘 LANG7 | ||||||
0x07 0x0097 | 键盘 LANG8 | ||||||
0x07 0x0098 | 键盘 LANG9 | ||||||
0x07 0x0099 | 键盘 Alternate Erase | ||||||
0x07 0x009a | 键盘 SysReq/Attention | ||||||
0x07 0x009b | 键盘 Cancel | ||||||
0x07 0x009c | 键盘 Clear | ||||||
0x07 0x009d | 键盘 Prior | ||||||
0x07 0x009e | 键盘 Return | ||||||
0x07 0x009f | 键盘 Separator | ||||||
0x07 0x00a0 | 键盘 Out | ||||||
0x07 0x00a1 | 键盘 Oper | ||||||
0x07 0x00a2 | 键盘 Clear/Again | ||||||
0x07 0x00a3 | 键盘 CrSel/Props | ||||||
0x07 0x00a4 | 键盘 ExSel | ||||||
0x07 0x00b0 | 小键盘 00 | ||||||
0x07 0x00b1 | 小键盘 000 | ||||||
0x07 0x00b2 | 千位分隔符 | ||||||
0x07 0x00b3 | 十进制分隔符 | ||||||
0x07 0x00b4 | 货币单位 | ||||||
0x07 0x00b5 | 货币子单位 | ||||||
0x07 0x00b6 | 小键盘 ( | 0x00b3 | KEY_KPLEFTPAREN | 3.0 | 0x00a2 | KEYCODE_NUMPAD_LEFT_PAREN | |
0x07 0x00b7 | 小键盘 ) | 0x00b4 | KEY_KPRIGHTPAREN | 3.0 | 0x00a3 | KEYCODE_NUMPAD_RIGHT_PAREN | |
0x07 0x00b8 | 小键盘 { | ||||||
0x07 0x00b9 | 小键盘 } | ||||||
0x07 0x00ba | 小键盘 Tab | ||||||
0x07 0x00bb | 小键盘 Backspace | ||||||
0x07 0x00bc | 小键盘 A | ||||||
0x07 0x00bd | 小键盘 B | ||||||
0x07 0x00be | 小键盘 C | ||||||
0x07 0x00bf | 小键盘 D | ||||||
0x07 0x00c0 | 小键盘 E | ||||||
0x07 0x00c1 | 小键盘 F | ||||||
0x07 0x00c2 | 小键盘 XOR | ||||||
0x07 0x00c3 | 小键盘 ^ | ||||||
0x07 0x00c4 | 小键盘 % | ||||||
0x07 0x00c5 | 小键盘 < | ||||||
0x07 0x00c6 | 小键盘 > | ||||||
0x07 0x00c7 | 小键盘 & | ||||||
0x07 0x00c8 | 小键盘 && | ||||||
0x07 0x00c9 | 小键盘 | | ||||||
0x07 0x00ca | 小键盘 || | ||||||
0x07 0x00cb | 小键盘 | ||||||
0x07 0x00cc | 小键盘 # | ||||||
0x07 0x00cd | 小键盘 Space | ||||||
0x07 0x00ce | 小键盘 @ | ||||||
0x07 0x00cf | 小键盘 ! | ||||||
0x07 0x00d0 | 小键盘 Memory Store | ||||||
0x07 0x00d1 | 小键盘 Memory Recall | ||||||
0x07 0x00d2 | 小键盘 Memory Clear | ||||||
0x07 0x00d3 | 小键盘 Memory Add | ||||||
0x07 0x00d4 | 小键盘 Memory Subtract | ||||||
0x07 0x00d5 | 小键盘 Memory Multiply | ||||||
0x07 0x00d6 | 小键盘 Memory Divide | ||||||
0x07 0x00d7 | 小键盘 +/- | ||||||
0x07 0x00d8 | 小键盘 Clear | ||||||
0x07 0x00d9 | 小键盘 Clear Entry | ||||||
0x07 0x00da | 小键盘 Binary | ||||||
0x07 0x00db | 小键盘 Octal | ||||||
0x07 0x00dc | 小键盘 Decimal | ||||||
0x07 0x00dd | 小键盘 Hexadecimal | ||||||
0x07 0x00e0 | 键盘 Left Control | 0x001d | KEY_LEFTCTRL | 3.0 | 0x0071 | KEYCODE_CTRL_LEFT | |
0x07 0x00e1 | 键盘 Left Shift | 0x002a | KEY_LEFTSHIFT | 1.6 | 0x003b | KEYCODE_SHIFT_LEFT | |
0x07 0x00e2 | 键盘 Left Alt | 0x0038 | KEY_LEFTALT | 1.6 | 0x0039 | KEYCODE_ALT_LEFT | |
0x07 0x00e3 | 键盘 Left GUI | 0x007d | KEY_LEFTMETA | 3.0 | 0x0075 | KEYCODE_META_LEFT | |
0x07 0x00e4 | 键盘 Right Control | 0x0061 | KEY_RIGHTCTRL | 3.0 | 0x0072 | KEYCODE_CTRL_RIGHT | |
0x07 0x00e5 | 键盘 Right Shift | 0x0036 | KEY_RIGHTSHIFT | 1.6 | 0x003c | KEYCODE_SHIFT_RIGHT | |
0x07 0x00e6 | 键盘 Right Alt | 0x0064 | KEY_RIGHTALT | 1.6 | 0x003a | KEYCODE_ALT_RIGHT | |
0x07 0x00e7 | 键盘 Right GUI | 0x007e | KEY_RIGHTMETA | 3.0 | 0x0076 | KEYCODE_META_RIGHT | |
0x07 0x00e8 | 0x00a4 | KEY_PLAYPAUSE | 3.0 | 0x0055 | KEYCODE_MEDIA_PLAY_PAUSE | ||
0x07 0x00e9 | 0x00a6 | KEY_STOPCD | 3.0 | 0x0056 | KEYCODE_MEDIA_STOP | ||
0x07 0x00ea | 0x00a5 | KEY_PREVIOUSSONG | 3.0 | 0x0058 | KEYCODE_MEDIA_PREVIOUS | ||
0x07 0x00eb | 0x00a3 | KEY_NEXTSONG | 3.0 | 0x0057 | KEYCODE_MEDIA_NEXT | ||
0x07 0x00ec | 0x00a1 | KEY_EJECTCD | 3.0 | 0x0081 | KEYCODE_MEDIA_EJECT | ||
0x07 0x00ed | 0x0073 | KEY_VOLUMEUP | 1.6 | 0x0018 | KEYCODE_VOLUME_UP | ||
0x07 0x00ee | 0x0072 | KEY_VOLUMEDOWN | 1.6 | 0x0019 | KEYCODE_VOLUME_DOWN | ||
0x07 0x00ef | 0x0071 | KEY_MUTE | 3.0 | 0x00a4 | KEYCODE_VOLUME_MUTE | ||
0x07 0x00f0 | 0x0096 | KEY_WWW | 1.6 | 0x0040 | KEYCODE_EXPLORER | ||
0x07 0x00f1 | 0x009e | KEY_BACK | 1.6 | 0x0004 | KEYCODE_BACK | ||
0x07 0x00f2 | 0x009f | KEY_FORWARD | 3.0 | 0x007d | KEYCODE_FORWARD | ||
0x07 0x00f3 | 0x0080 | KEY_STOP | 3.0 | 0x0056 | KEYCODE_MEDIA_STOP | ||
0x07 0x00f4 | 0x0088 | KEY_FIND | |||||
0x07 0x00f5 | 0x00b1 | KEY_SCROLLUP | 3.0 | 0x005c | KEYCODE_PAGE_UP | ||
0x07 0x00f6 | 0x00b2 | KEY_SCROLLDOWN | 3.0 | 0x005d | KEYCODE_PAGE_DOWN | ||
0x07 0x00f7 | 0x00b0 | KEY_EDIT | |||||
0x07 0x00f8 | 0x008e | KEY_SLEEP | |||||
0x07 0x00f9 | 0x0098 | KEY_COFFEE | 4.0 | 0x001a | KEYCODE_POWER | ||
0x07 0x00fa | 0x00ad | KEY_REFRESH | |||||
0x07 0x00fb | 0x008c | KEY_CALC | 4.0.3 | 0x00d2 | KEYCODE_CALCULATOR |
HID 通用桌面页 (0x01)
HID 用法 | HID 用法名称 | LKC | Linux 键代码名称 | 版本 | AKC | Android 键代码名称 | 注释 |
---|---|---|---|---|---|---|---|
0x01 0x0081 | 系统关机 | 0x0074 | KEY_POWER | 1.6 | 0x001a | KEYCODE_POWER | |
0x01 0x0082 | 系统睡眠 | 0x008e | KEY_SLEEP | 4.0 | 0x001a | KEYCODE_POWER | |
0x01 0x0083 | 系统唤醒 | 0x008f | KEY_WAKEUP | 4.0 | 0x001a | KEYCODE_POWER | |
0x01 0x0084 | 系统上下文菜单 | ||||||
0x01 0x0085 | 系统主菜单 | ||||||
0x01 0x0086 | 系统应用菜单 | ||||||
0x01 0x0087 | 系统菜单帮助 | ||||||
0x01 0x0088 | 系统菜单退出 | ||||||
0x01 0x0089 | 系统菜单选择 | ||||||
0x01 0x008a | 系统菜单右键 | ||||||
0x01 0x008b | 系统菜单 左 | ||||||
0x01 0x008c | 系统菜单 上 | ||||||
0x01 0x008d | 系统菜单 下 | ||||||
0x01 0x008e | 系统冷重启 | ||||||
0x01 0x008f | 系统热重启 | ||||||
0x01 0x00a0 | 系统 停靠 | ||||||
0x01 0x00a1 | 系统 解除停靠 | ||||||
0x01 0x00a2 | 系统设置 | ||||||
0x01 0x00a3 | 系统中断 | ||||||
0x01 0x00a4 | 系统调试器中断 | ||||||
0x01 0x00a5 | 应用程序中断 | ||||||
0x01 0x00a6 | 应用程序调试器中断 | ||||||
0x01 0x00a7 | 系统扬声器静音 | ||||||
0x01 0x00a8 | 系统休眠 | ||||||
0x01 0x00b0 | 系统显示器反转 | ||||||
0x01 0x00b1 | 系统显示器内置 | ||||||
0x01 0x00b2 | 系统显示器外置 | ||||||
0x01 0x00b3 | 系统显示器两者 | ||||||
0x01 0x00b4 | 系统显示器双屏 | ||||||
0x01 0x00b5 | 系统显示器切换内置/外置 | ||||||
0x01 0x00b6 | 系统显示器交换主/副屏 | ||||||
0x01 0x00b7 | 系统显示器 LCD 自动缩放 |
HID 消费者页面 (0x0c)
HID 用法 | HID 用法名称 | LKC | Linux 键代码名称 | 版本 | AKC | Android 键代码名称 | 注释 |
---|---|---|---|---|---|---|---|
0x0c 0x0030 | 电源 | ||||||
0x0c 0x0031 | 重置 | ||||||
0x0c 0x0032 | 睡眠 | ||||||
0x0c 0x0033 | 睡眠后 | ||||||
0x0c 0x0034 | 睡眠模式 | 0x008e | KEY_SLEEP | 4.0 | 0x001a | KEYCODE_POWER | |
0x0c 0x0040 | 菜单 | 0x008b | KEY_MENU | 1.6 | 0x0052 | KEYCODE_MENU | |
0x0c 0x0041 | 菜单选择 | ||||||
0x0c 0x0042 | 菜单向上 | ||||||
0x0c 0x0043 | 菜单向下 | ||||||
0x0c 0x0044 | 菜单向左 | ||||||
0x0c 0x0045 | 菜单向右 | 0x0181 | KEY_RIGHT | ||||
0x0c 0x0046 | 菜单退出 | ||||||
0x0c 0x0047 | 菜单值增加 | ||||||
0x0c 0x0048 | 菜单值减少 | ||||||
0x0c 0x0067 | 画中画切换 | 0x00ab | KEYCODE_WINDOW | Added in aosp/1365553 | |||
0x0c 0x0069 | 红色菜单按钮 | 0x18e | KEY_RED | 0x00b7 | KEYCODE_PROG_RED | Added in aosp/1388616 | |
0x0c 0x006a | 绿色菜单按钮 | 0x18f | KEY_GREEN | 0x00b8 | KEYCODE_PROG_GREEN | Added in aosp/1388616 | |
0x0c 0x006b | 蓝色菜单按钮 | 0x191 | KEY_BLUE | 0x00ba | KEYCODE_PROG_BLUE | Added in aosp/1388616 | |
0x0c 0x006c | 黄色菜单按钮 | 0x190 | KEY_YELLOW | 0x00b9 | KEYCODE_PROG_YELLOW | Added in aosp/1388616 | |
0x0c 0x0081 | 分配选择 | ||||||
0x0c 0x0082 | 模式步进 | ||||||
0x0c 0x0083 | 调用上次 | 0x0195 | KEY_LAST | 0xe5 | KEYCODE_LAST_CHANNEL | Added in aosp/1365551 | |
0x0c 0x0084 | 输入频道 | ||||||
0x0c 0x0085 | 点播电影 | ||||||
0x0c 0x0088 | 媒体选择 计算机 | 0x0178 | KEY_PC | ||||
0x0c 0x0089 | 媒体选择 电视 | 0x0179 | KEY_TV | 3.0 | 0x00aa | KEYCODE_TV | |
0x0c 0x008a | 媒体选择 万维网 | 0x0096 | KEY_WWW | 1.6 | 0x0040 | KEYCODE_EXPLORER | |
0x0c 0x008b | 媒体选择 DVD | 0x0185 | KEY_DVD | ||||
0x0c 0x008c | 媒体选择 电话 | 0x00a9 | KEY_PHONE | 3.0 | 0x0005 | KEYCODE_CALL | |
0x0c 0x008d | 媒体选择 节目指南 | 0x016a | KEY_PROGRAM | 3.0 | 0x00ac | KEYCODE_GUIDE | |
0x0c 0x008e | 媒体选择 视频电话 | 0x01a0 | KEY_VIDEOPHONE | ||||
0x0c 0x008f | 媒体选择 游戏 | 0x01a1 | KEY_GAMES | ||||
0x0c 0x0090 | 媒体选择 消息 | 0x018c | KEY_MEMO | ||||
0x0c 0x0091 | 媒体选择 CD | 0x017f | KEY_CD | ||||
0x0c 0x0092 | 媒体选择 VCR | 0x017b | KEY_VCR | ||||
0x0c 0x0093 | 媒体选择 调谐器 | 0x0182 | KEY_TUNER | ||||
0x0c 0x0094 | 退出 | 0x00ae | KEY_EXIT | ||||
0x0c 0x0095 | 帮助 | 0x008a | KEY_HELP | ||||
0x0c 0x0096 | 媒体选择 磁带 | 0x0180 | KEY_TAPE | ||||
0x0c 0x0097 | 媒体选择 有线电视 | 0x017a | KEY_TV2 | ||||
0x0c 0x0098 | 媒体选择 卫星 | 0x017d | KEY_SAT | ||||
0x0c 0x0099 | 媒体选择 安全 | ||||||
0x0c 0x009a | 媒体选择 主页 | 0x016e | KEY_PVR | 3.0 | 0x00ad | KEYCODE_DVR | |
0x0c 0x0061 | 隐藏式字幕 | 0x0172 | KEY_SUBTITLE | 0x00af | KEYCODE_CAPTIONS | Added in aosp/1365552 | |
0x0c 0x009c | 频道增加 | 0x0192 | KEY_CHANNELUP | 3.0 | 0x00a6 | KEYCODE_CHANNEL_UP | |
0x0c 0x009d | 频道减少 | 0x0193 | KEY_CHANNELDOWN | 3.0 | 0x00a7 | KEYCODE_CHANNEL_DOWN | |
0x0c 0x009e | 媒体选择 SAP | ||||||
0x0c 0x00a0 | VCR Plus | 0x017c | KEY_VCR2 | ||||
0x0c 0x00a1 | 一次 | ||||||
0x0c 0x00a2 | 每天 | ||||||
0x0c 0x00a3 | 每周 | ||||||
0x0c 0x00a4 | 每月 | ||||||
0x0c 0x00b0 | 播放 | 0x00cf | KEY_PLAY | 3.0 | 0x007e | KEYCODE_MEDIA_PLAY | |
0x0c 0x00b1 | 暂停 | 0x0077 | KEY_PAUSE | 3.0 | 0x0079 | KEYCODE_BREAK | |
0x0c 0x00b2 | 录制 | 0x00a7 | KEY_RECORD | 3.0 | 0x0082 | KEYCODE_MEDIA_RECORD | |
0x0c 0x00b3 | 快进 | 0x00d0 | KEY_FASTFORWARD | 3.0 | 0x005a | KEYCODE_MEDIA_FAST_FORWARD | |
0x0c 0x00b4 | 快退 | 0x00a8 | KEY_REWIND | 3.0 | 0x0059 | KEYCODE_MEDIA_REWIND | |
0x0c 0x00b5 | 扫描下一曲目 | 0x00a3 | KEY_NEXTSONG | 3.0 | 0x0057 | KEYCODE_MEDIA_NEXT | |
0x0c 0x00b6 | 扫描上一曲目 | 0x00a5 | KEY_PREVIOUSSONG | 3.0 | 0x0058 | KEYCODE_MEDIA_PREVIOUS | |
0x0c 0x00b7 | 停止 | 0x00a6 | KEY_STOPCD | 3.0 | 0x0056 | KEYCODE_MEDIA_STOP | |
0x0c 0x00b8 | 弹出 | 0x00a1 | KEY_EJECTCD | 3.0 | 0x0081 | KEYCODE_MEDIA_EJECT | |
0x0c 0x00b9 | 随机播放 | ||||||
0x0c 0x00ba | 选择光盘 | ||||||
0x0c 0x00bb | 进入光盘 | ||||||
0x0c 0x00bc | 重复 | 0x01b7 | KEY_MEDIA_REPEAT | ||||
0x0c 0x00be | 曲目正常 | ||||||
0x0c 0x00c0 | 帧前进 | ||||||
0x0c 0x00c1 | 帧后退 | ||||||
0x0c 0x00c2 | 标记 | ||||||
0x0c 0x00c3 | 清除标记 | ||||||
0x0c 0x00c4 | 从标记处重复 | ||||||
0x0c 0x00c5 | 返回标记 | ||||||
0x0c 0x00c6 | 向前搜索标记 | ||||||
0x0c 0x00c7 | 向后搜索标记 | ||||||
0x0c 0x00c8 | 计数器重置 | ||||||
0x0c 0x00c9 | 显示计数器 | ||||||
0x0c 0x00ca | 跟踪增加 | ||||||
0x0c 0x00cb | 跟踪减少 | ||||||
0x0c 0x00cc | 停止/弹出 | ||||||
0x0c 0x00cd | 播放/暂停 | 0x00a4 | KEY_PLAYPAUSE | 3.0 | 0x0055 | KEYCODE_MEDIA_PLAY_PAUSE | |
0x0c 0x00ce | 播放/跳过 | ||||||
0x0c 0x00e2 | 静音 | 0x0071 | KEY_MUTE | 3.0 | 0x00a4 | KEYCODE_VOLUME_MUTE | |
0x0c 0x00e5 | 低音增强 | 0x00d1 | KEY_BASSBOOST | ||||
0x0c 0x00e6 | 环绕模式 | ||||||
0x0c 0x00e7 | 响度 | ||||||
0x0c 0x00e8 | MPX | ||||||
0x0c 0x00e9 | 音量增加 | 0x0073 | KEY_VOLUMEUP | 1.6 | 0x0018 | KEYCODE_VOLUME_UP | |
0x0c 0x00ea | 音量减少 | 0x0072 | KEY_VOLUMEDOWN | 1.6 | 0x0019 | KEYCODE_VOLUME_DOWN | |
0x0c 0x0173 | 备用音频增加 | 0x00de | KEYCODE_MEDIA_AUDIO_TRACK | Added in aosp/1365554 | |||
0x0c 0x0181 | AL 启动按钮配置工具 | ||||||
0x0c 0x0182 | AL 可编程按钮配置 | 0x009c | KEY_BOOKMARKS | 3.0 | 0x00ae | KEYCODE_BOOKMARK | |
0x0c 0x0183 | AL 消费者控制配置 | 0x00ab | KEY_CONFIG | 4.0.3 | 0x00d1 | KEYCODE_MUSIC | |
0x0c 0x0184 | AL 文字处理器 | 0x01a5 | KEY_WORDPROCESSOR | ||||
0x0c 0x0185 | AL 文本编辑器 | 0x01a6 | KEY_EDITOR | ||||
0x0c 0x0186 | AL 电子表格 | 0x01a7 | KEY_SPREADSHEET | ||||
0x0c 0x0187 | AL 图形编辑器 | 0x01a8 | KEY_GRAPHICSEDITOR | ||||
0x0c 0x0188 | AL 演示文稿应用 | 0x01a9 | KEY_PRESENTATION | ||||
0x0c 0x0189 | AL 数据库应用 | 0x01aa | KEY_DATABASE | ||||
0x0c 0x018a | AL 电子邮件阅读器 | 0x009b | KEY_MAIL | 1.6 | 0x0041 | KEYCODE_ENVELOPE | |
0x0c 0x018b | AL 新闻阅读器 | 0x01ab | KEY_NEWS | ||||
0x0c 0x018c | AL 语音邮件 | 0x01ac | KEY_VOICEMAIL | ||||
0x0c 0x018d | AL 联系人/地址簿 | 0x01ad | KEY_ADDRESSBOOK | 4.0.3 | 0x00cf | KEYCODE_CONTACTS | |
0x0c 0x018e | AL 日历/日程 | 0x018d | KEY_CALENDAR | 4.0.3 | 0x00d0 | KEYCODE_CALENDAR | |
0x0c 0x018f | AL 任务/项目管理器 | ||||||
0x0c 0x0190 | AL 日志/期刊/时间卡 | ||||||
0x0c 0x0191 | AL 支票簿/财务 | 0x00db | KEY_FINANCE | ||||
0x0c 0x0192 | AL 计算器 | 0x008c | KEY_CALC | 4.0.3 | 0x00d2 | KEYCODE_CALCULATOR | |
0x0c 0x0193 | AL 音频/视频捕获/播放 | ||||||
0x0c 0x0194 | AL 本地机器浏览器 | 0x0090 | KEY_FILE | ||||
0x0c 0x0195 | AL LAN/WAN 浏览器 | ||||||
0x0c 0x0196 | AL 互联网浏览器 | 0x0096 | KEY_WWW | 1.6 | 0x0040 | KEYCODE_EXPLORER | |
0x0c 0x0197 | AL 远程网络/ISP 连接 | ||||||
0x0c 0x0198 | AL 网络会议 | ||||||
0x0c 0x0199 | AL 网络聊天 | 0x00d8 | KEY_CHAT | ||||
0x0c 0x019a | AL 电话/拨号器 | ||||||
0x0c 0x019b | AL 登录 | ||||||
0x0c 0x019c | AL 注销 | 0x01b1 | KEY_LOGOFF | ||||
0x0c 0x019d | AL 登录/注销 | ||||||
0x0c 0x019e | AL 终端锁定/屏幕保护程序 | 0x0098 | KEY_COFFEE | 4.0 | 0x001a | KEYCODE_POWER | |
0x0c 0x019f | AL 控制面板 | ||||||
0x0c 0x01a0 | AL 命令行处理器/运行 | ||||||
0x0c 0x01a1 | AL 进程/任务管理器 | ||||||
0x0c 0x01a2 | AL 选择任务/应用程序 | ||||||
0x0c 0x01a3 | AL 下一个任务/应用程序 | ||||||
0x0c 0x01a4 | AL 上一个任务/应用程序 | ||||||
0x0c 0x01a5 | AL 抢占式停止任务/应用 | ||||||
0x0c 0x01a6 | AL 集成帮助中心 | 0x008a | KEY_HELP | ||||
0x0c 0x01a7 | AL 文档 | 0x00eb | KEY_DOCUMENTS | ||||
0x0c 0x01a8 | AL 词库 | ||||||
0x0c 0x01a9 | AL 字典 | ||||||
0x0c 0x01aa | AL 桌面 | ||||||
0x0c 0x01ab | AL 拼写检查 | 0x01b0 | KEY_SPELLCHECK | ||||
0x0c 0x01ac | AL 语法检查 | ||||||
0x0c 0x01ad | AL 无线状态 | ||||||
0x0c 0x01ae | AL 键盘布局 | ||||||
0x0c 0x01af | AL 病毒防护 | ||||||
0x0c 0x01b0 | AL 加密 | ||||||
0x0c 0x01b1 | AL 屏幕保护程序 | ||||||
0x0c 0x01b2 | AL 闹钟 | ||||||
0x0c 0x01b3 | AL 时钟 | ||||||
0x0c 0x01b4 | AL 文件浏览器 | ||||||
0x0c 0x01b5 | AL 电源状态 | ||||||
0x0c 0x01b6 | AL 图像浏览器 | 0x00e2 | KEY_MEDIA | 3.0 | 0x004f | KEYCODE_HEADSETHOOK | |
0x0c 0x01b7 | AL 音频浏览器 | 0x00d5 | KEY_SOUND | 4.0.3 | 0x00d1 | KEYCODE_MUSIC | |
0x0c 0x01b8 | AL 电影浏览器 | ||||||
0x0c 0x01b9 | AL 数字版权管理器 | ||||||
0x0c 0x01ba | AL 数字钱包 | ||||||
0x0c 0x01bc | AL 即时通讯 | 0x01ae | KEY_MESSENGER | ||||
0x0c 0x01bd | AL OEM 功能/提示浏览器 | 0x0166 | KEY_INFO | ||||
0x0c 0x01be | AL OEM 帮助 | ||||||
0x0c 0x01bf | AL 在线社区 | ||||||
0x0c 0x01c0 | AL 娱乐内容浏览器 | ||||||
0x0c 0x01c1 | AL 在线购物浏览器 | ||||||
0x0c 0x01c2 | AL 智能卡信息/帮助 | ||||||
0x0c 0x01c3 | AL 市场/金融浏览器 | ||||||
0x0c 0x01c4 | AL 自定义公司新闻浏览器 | ||||||
0x0c 0x01c5 | AL 在线活动浏览器 | ||||||
0x0c 0x01c6 | AL 研究/搜索浏览器 | ||||||
0x0c 0x01c7 | AL 音频播放器 | ||||||
0x0c 0x0201 | AC 新建 | 0x00b5 | KEY_NEW | ||||
0x0c 0x0202 | AC 打开 | 0x0086 | KEY_OPEN | ||||
0x0c 0x0203 | AC 关闭 | 0x00ce | KEY_CLOSE | ||||
0x0c 0x0204 | AC 退出 | 0x00ae | KEY_EXIT | ||||
0x0c 0x0205 | AC 最大化 | ||||||
0x0c 0x0206 | AC 最小化 | ||||||
0x0c 0x0207 | AC 保存 | 0x00ea | KEY_SAVE | ||||
0x0c 0x0208 | AC 打印 | 0x00d2 | KEY_PRINT | ||||
0x0c 0x0209 | AC 属性 | 0x0082 | KEY_PROPS | ||||
0x0c 0x021a | AC 撤销 | 0x0083 | KEY_UNDO | ||||
0x0c 0x021b | AC 复制 | 0x0085 | KEY_COPY | ||||
0x0c 0x021c | AC 剪切 | 0x0089 | KEY_CUT | ||||
0x0c 0x021d | AC 粘贴 | 0x0087 | KEY_PASTE | ||||
0x0c 0x021e | AC 全选 | ||||||
0x0c 0x021f | AC 查找 | 0x0088 | KEY_FIND | ||||
0x0c 0x0220 | AC 查找和替换 | ||||||
0x0c 0x0221 | AC 搜索 | 0x00d9 | KEY_SEARCH | 1.6 | 0x0054 | KEYCODE_SEARCH | |
0x0c 0x0222 | AC 转到 | 0x0162 | KEY_GOTO | ||||
0x0c 0x0223 | AC 主页 | 0x00ac | KEY_HOMEPAGE | 3.0 | 0x0003 | KEYCODE_HOME | |
0x0c 0x0224 | AC 后退 | 0x009e | KEY_BACK | 1.6 | 0x0004 | KEYCODE_BACK | |
0x0c 0x0225 | AC 前进 | 0x009f | KEY_FORWARD | 3.0 | 0x007d | KEYCODE_FORWARD | |
0x0c 0x0226 | AC 停止 | 0x0080 | KEY_STOP | 3.0 | 0x0056 | KEYCODE_MEDIA_STOP | |
0x0c 0x0227 | AC 刷新 | 0x00ad | KEY_REFRESH | ||||
0x0c 0x0228 | AC 上一个链接 | ||||||
0x0c 0x0229 | AC 下一个链接 | ||||||
0x0c 0x022a | AC 书签 | 0x009c | KEY_BOOKMARKS | 3.0 | 0x00ae | KEYCODE_BOOKMARK | |
0x0c 0x022b | AC 历史记录 | ||||||
0x0c 0x022c | AC 订阅 | ||||||
0x0c 0x022d | AC 放大 | 0x01a2 | KEY_ZOOMIN | ||||
0x0c 0x022e | AC 缩小 | 0x01a3 | KEY_ZOOMOUT | ||||
0x0c 0x022f | AC 缩放 | 0x01a4 | KEY_ZOOMRESET | 2 | |||
0x0c 0x0230 | AC 全屏视图 | ||||||
0x0c 0x0231 | AC 正常视图 | ||||||
0x0c 0x0232 | AC 视图切换 | ||||||
0x0c 0x0233 | AC 向上滚动 | 0x00b1 | KEY_SCROLLUP | 3.0 | 0x005c | KEYCODE_PAGE_UP | |
0x0c 0x0234 | AC 向下滚动 | 0x00b2 | KEY_SCROLLDOWN | 3.0 | 0x005d | KEYCODE_PAGE_DOWN | |
0x0c 0x0236 | AC 向左平移 | ||||||
0x0c 0x0237 | AC 向右平移 | ||||||
0x0c 0x0239 | AC 新窗口 | ||||||
0x0c 0x023a | AC 水平平铺 | ||||||
0x0c 0x023b | AC 垂直平铺 | ||||||
0x0c 0x023c | AC 格式 | ||||||
0x0c 0x023d | AC 编辑 | ||||||
0x0c 0x023e | AC 粗体 | ||||||
0x0c 0x023f | AC 斜体 | ||||||
0x0c 0x0240 | AC 下划线 | ||||||
0x0c 0x0241 | AC 删除线 | ||||||
0x0c 0x0242 | AC 下标 | ||||||
0x0c 0x0243 | AC 上标 | ||||||
0x0c 0x0244 | AC 全部大写 | ||||||
0x0c 0x0245 | AC 旋转 | ||||||
0x0c 0x0246 | AC 调整大小 | ||||||
0x0c 0x0247 | AC 水平翻转 | ||||||
0x0c 0x0248 | AC 垂直翻转 | ||||||
0x0c 0x0249 | AC 水平镜像 | ||||||
0x0c 0x024a | AC 垂直镜像 | ||||||
0x0c 0x024b | AC 字体选择 | ||||||
0x0c 0x024c | AC 字体颜色 | ||||||
0x0c 0x024d | AC 字体大小 | ||||||
0x0c 0x024e | AC 左对齐 | ||||||
0x0c 0x024f | AC 水平居中 | ||||||
0x0c 0x0250 | AC 右对齐 | ||||||
0x0c 0x0251 | AC 水平两端对齐 | ||||||
0x0c 0x0252 | AC 顶对齐 | ||||||
0x0c 0x0253 | AC 垂直居中 | ||||||
0x0c 0x0254 | AC 底对齐 | ||||||
0x0c 0x0255 | AC 垂直两端对齐 | ||||||
0x0c 0x0256 | AC 减少缩进 | ||||||
0x0c 0x0257 | AC 增加缩进 | ||||||
0x0c 0x0258 | AC 编号列表 | ||||||
0x0c 0x0259 | AC 重新开始编号 | ||||||
0x0c 0x025a | AC 项目符号列表 | ||||||
0x0c 0x025b | AC 升级 | ||||||
0x0c 0x025c | AC 降级 | ||||||
0x0c 0x025d | AC 是 | ||||||
0x0c 0x025e | AC 否 | ||||||
0x0c 0x025f | AC 取消 | 0x00df | KEY_CANCEL | ||||
0x0c 0x0260 | AC 目录 | ||||||
0x0c 0x0261 | AC 购买/结账 | ||||||
0x0c 0x0262 | AC 添加到购物车 | ||||||
0x0c 0x0263 | AC 展开 | ||||||
0x0c 0x0264 | AC 全部展开 | ||||||
0x0c 0x0265 | AC 折叠 | ||||||
0x0c 0x0266 | AC 全部折叠 | ||||||
0x0c 0x0267 | AC 打印预览 | ||||||
0x0c 0x0268 | AC 选择性粘贴 | ||||||
0x0c 0x0269 | AC 插入模式 | ||||||
0x0c 0x026a | AC 删除 | ||||||
0x0c 0x026b | AC 锁定 | ||||||
0x0c 0x026c | AC 解锁 | ||||||
0x0c 0x026d | AC 保护 | ||||||
0x0c 0x026e | AC 取消保护 | ||||||
0x0c 0x026f | AC 添加注释 | ||||||
0x0c 0x0270 | AC 删除注释 | ||||||
0x0c 0x0271 | AC 查看注释 | ||||||
0x0c 0x0272 | AC 选择单词 | ||||||
0x0c 0x0273 | AC 选择句子 | ||||||
0x0c 0x0274 | AC 选择段落 | ||||||
0x0c 0x0275 | AC 选择列 | ||||||
0x0c 0x0276 | AC 选择行 | ||||||
0x0c 0x0277 | AC 选择表格 | ||||||
0x0c 0x0278 | AC 选择对象 | ||||||
0x0c 0x0279 | AC 重做/重复 | 0x00b6 | KEY_REDO | ||||
0x0c 0x027a | AC 排序 | ||||||
0x0c 0x027b | AC 升序排序 | ||||||
0x0c 0x027c | AC 降序排序 | ||||||
0x0c 0x027d | AC 筛选 | ||||||
0x0c 0x027e | AC 设置时钟 | ||||||
0x0c 0x027f | AC 查看时钟 | ||||||
0x0c 0x0280 | AC 选择时区 | ||||||
0x0c 0x0281 | AC 编辑时区 | ||||||
0x0c 0x0282 | AC 设置闹钟 | ||||||
0x0c 0x0283 | AC 清除闹钟 | ||||||
0x0c 0x0284 | AC 稍后提醒闹钟 | ||||||
0x0c 0x0285 | AC 重置闹钟 | ||||||
0x0c 0x0286 | AC 同步 | ||||||
0x0c 0x0287 | AC 发送/接收 | ||||||
0x0c 0x0288 | AC 发送到 | ||||||
0x0c 0x0289 | AC 回复 | 0x00e8 | KEY_REPLY | ||||
0x0c 0x028a | AC 全部回复 | ||||||
0x0c 0x028b | AC 转发消息 | 0x00e9 | KEY_FORWARDMAIL | ||||
0x0c 0x028c | AC 发送 | 0x00e7 | KEY_SEND | ||||
0x0c 0x028d | AC 附加文件 | ||||||
0x0c 0x028e | AC 上传 | ||||||
0x0c 0x028f | AC 下载(目标另存为) | ||||||
0x0c 0x0290 | AC 设置边框 | ||||||
0x0c 0x0291 | AC 插入行 | ||||||
0x0c 0x0292 | AC 插入列 | ||||||
0x0c 0x0293 | AC 插入文件 | ||||||
0x0c 0x0294 | AC 插入图片 | ||||||
0x0c 0x0295 | AC 插入对象 | ||||||
0x0c 0x0296 | AC 插入符号 | ||||||
0x0c 0x0297 | AC 保存并关闭 | ||||||
0x0c 0x0298 | AC 重命名 | ||||||
0x0c 0x0299 | AC 合并 | ||||||
0x0c 0x029a | AC 拆分 | ||||||
0x0c 0x029b | AC 水平分布 | ||||||
0x0c 0x029c | AC 垂直分布 |
Additional non-HID mappings
These mappings describe functions that do not appear in HID but for which Linux key codes exist.
LKC | Linux 键代码名称 | 版本 | AKC | Android 键代码名称 | 注释 |
---|---|---|---|---|---|
0x01d0 | KEY_FN | 3.0 | 0x0077 | KEYCODE_FUNCTION | |
0x01d1 | KEY_FN_ESC | 3.0 | 0x006f | KEYCODE_ESCAPE | 3 |
0x01d2 | KEY_FN_F1 | 3.0 | 0x0083 | KEYCODE_F1 | 3 |
0x01d3 | KEY_FN_F2 | 3.0 | 0x0084 | KEYCODE_F2 | 3 |
0x01d4 | KEY_FN_F3 | 3.0 | 0x0085 | KEYCODE_F3 | 3 |
0x01d5 | KEY_FN_F4 | 3.0 | 0x0086 | KEYCODE_F4 | 3 |
0x01d6 | KEY_FN_F5 | 3.0 | 0x0087 | KEYCODE_F5 | 3 |
0x01d7 | KEY_FN_F6 | 3.0 | 0x0088 | KEYCODE_F6 | 3 |
0x01d8 | KEY_FN_F7 | 3.0 | 0x0089 | KEYCODE_F7 | 3 |
0x01d9 | KEY_FN_F8 | 3.0 | 0x008a | KEYCODE_F8 | 3 |
0x01da | KEY_FN_F9 | 3.0 | 0x008b | KEYCODE_F9 | 3 |
0x01db | KEY_FN_F10 | 3.0 | 0x008c | KEYCODE_F10 | 3 |
0x01dc | KEY_FN_F11 | 3.0 | 0x008d | KEYCODE_F11 | 3 |
0x01dd | KEY_FN_F12 | 3.0 | 0x008e | KEYCODE_F12 | 3 |
0x01de | KEY_FN_1 | 3.0 | 0x0008 | KEYCODE_1 | 3 |
0x01df | KEY_FN_2 | 3.0 | 0x0009 | KEYCODE_2 | 3 |
0x01e0 | KEY_FN_D | 3.0 | 0x0020 | KEYCODE_D | 3 |
0x01e1 | KEY_FN_E | 3.0 | 0x0021 | KEYCODE_E | 3 |
0x01e2 | KEY_FN_F | 3.0 | 0x0022 | KEYCODE_F | 3 |
0x01e3 | KEY_FN_S | 3.0 | 0x002f | KEYCODE_S | 3 |
0x01e4 | KEY_FN_B | 3.0 | 0x001e | KEYCODE_B | 3 |
Legacy unsupported keys
These mappings appeared in previous versions of Android but were inconsistent with HID or used non-standard Linux key codes. They are no longer supported.
LKC | Linux 键代码名称 | 版本 | AKC | Android 键代码名称 | 注释 |
---|---|---|---|---|---|
0x00db | KEY_EMAIL | 1.6 | 0x004d | KEYCODE_AT | 4 |
"" | "" | 4.0 | 4 | ||
0x00e3 | KEY_STAR | 1.6 | 0x0011 | KEYCODE_STAR | 4 |
"" | "" | 4.0 | 4 | ||
0x00e4 | KEY_SHARP | 1.6 | 0x0012 | KEYCODE_POUND | 4 |
"" | "" | 4.0 | 4 | ||
0x00e5 | KEY_SOFT1 | 1.6 | 0x0052 | KEYCODE_MENU | 4 |
"" | "" | 4.0 | 4 | ||
0x00e6 | KEY_SOFT2 | 1.6 | 0x0002 | KEYCODE_SOFT_RIGHT | 4 |
"" | "" | 4.0 | 4 | ||
0x00e7 | KEY_SEND | 1.6 | 0x0005 | KEYCODE_CALL | 4 |
"" | "" | 4.0 | 4 | ||
0x00e8 | KEY_CENTER | 1.6 | 0x0017 | KEYCODE_DPAD_CENTER | 4 |
"" | "" | 4.0 | 4 | ||
0x00e9 | KEY_HEADSETHOOK | 1.6 | 0x004f | KEYCODE_HEADSETHOOK | 4 |
"" | "" | 4.0 | 4 | ||
0x00ea | KEY_0_5 | 1.6 | 4 | ||
0x00eb | KEY_2_5 | 1.6 | 4 |
注释
-
The Android key code associated with common alphanumeric and symbolic keys may vary based on the keyboard layout and language. For historical reasons, the physical scan codes and HID usages associated with keys on a keyboard are often defined positionally even though the labels printed on those keys may vary from one language to another.
On a US English (QWERTY) keyboard, the top-left alphabetic key is labeled Q. On a French (AZERTY) keyboard, the key in the same position is labeled A. Despite the label, on both keyboards the top-left alphabetic key is referred to using the HID usage 0x07 0x0014 which is mapped to the Linux key code KEY_Q.
When Android is configured with a US English keyboard layout, then the Linux key code KEY_Q will be mapped to the Android key code KEYCODE_Q and will produce the characters 'Q' and 'q'. However, when Android is configured with a French keyboard layout, then the Linux key code KEY_Q will be mapped to the Android key code KEYCODE_A and will produce the characters 'A' and 'a'.
The Android key code typically reflects the language-specific interpretation of the key, so a different Android key code may be used for different languages.
-
0x0c 0x022f AC Zoom
is defined in the HID as a linear control but the kernel maps it as a key, which is probably incorrect. -
The Linux function keys
KEY_FN_*
are mapped to simpler key codes but are dispatched with theMETA_FUNCTION
meta state bit set to true. -
Prior to Android Ice Cream Sandwich 4.0, the default key layout contained mappings for some extra key codes that were not defined in the mainline Linux kernel headers. These mappings have since been removed because these previously undefined key codes have since been assigned different meanings in more recent versions of the Linux kernel.
Sources
- USB HID Usage Tables v1.12
- Linux 2.6.39 kernel: include/linux/input.h, drivers/hid/hid-input.c
- Android ICS: qwerty.kl, Generic.kl, KeyEvent.java