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 執行自己的鍵盤重複。應在驅動程序中禁用自動重複功能。
鍵盤驅動程序可以通過發送帶有
EV_MSC
的MSC_SCANCODE
和一個值來指示 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
使用原始事件並更新元鍵狀態。例如,如果左移鍵被按下或釋放,閱讀器將相應地設置或重置META_SHIFT_LEFT_ON
和META_SHIFT_ON
位。InputReader
通知InputDispatcher
有關鍵事件。InputDispatcher
通過調用WindowManagerPolicy.interceptKeyBeforeQueueing
詢問WindowManagerPolicy
如何處理鍵事件。此方法是關鍵路徑的一部分,該路徑負責在按下某些鍵時喚醒設備。EventHub
沿著這條關鍵路徑有效地持有喚醒鎖,以確保它將運行到完成。如果
InputFilter
當前正在使用中,InputDispatcher
給它一個消費或轉換鍵的機會。InputFilter
可用於實現低級系統範圍的可訪問性策略。InputDispatcher
將鍵排入隊列以在調度線程上進行處理。當
InputDispatcher
將鍵出列時,它通過調用WindowManagerPolicy.interceptKeyBeforeDispatching
為WindowManagerPolicy
提供了第二次攔截鍵事件的機會。此方法處理系統快捷方式和其他功能。InputDispatcher
然後識別關鍵事件目標(焦點窗口)並等待它們準備好。然後,InputDispatcher
將按鍵事件傳遞給應用程序。在應用程序內部,鍵事件沿視圖層次結構向下傳播到焦點視圖,以進行 IME 之前的鍵分派。
如果在預 IME 分派中未處理鍵事件並且 IME 正在使用中,則將鍵事件傳遞給 IME。
如果 IME 沒有使用按鍵事件,則按鍵事件會向下傳播視圖層次結構到焦點視圖以進行標準按鍵調度。
應用程序向
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
。
方向感知用於支持方向鍵盤鍵的旋轉,例如在摩托羅拉 Droid 上。例如,當設備從其自然方向順時針旋轉 90 度時, KEYCODE_DPAD_UP
被重新映射以產生KEYCODE_DPAD_RIGHT
,因為當設備保持在該方向時,“向上”鍵最終指向“右”。
keyboard.builtIn
定義: keyboard.builtIn
= 0
| 1
指定鍵盤是否為內置(物理連接)鍵盤。
如果設備名稱以-keypad
結尾,則默認值為1
,否則為0
。
內置鍵盤的設備 ID 始終為0
。其他非內置鍵盤被分配唯一的非零設備 ID。
為內置鍵盤使用0
的 id 對於保持與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 密鑰代碼。
備註欄是指在表格之後張貼的備註。
Version 列指定了在其默認鍵映射中包含此鍵的 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 使用名稱 | LKC | Linux 密鑰代碼名稱 | 版本 | AKC | Android 鍵碼名稱 | 筆記 |
---|---|---|---|---|---|---|---|
0x07 0x0001 | 鍵盤錯誤翻轉 | ||||||
0x07 0x0002 | 鍵盤開機自檢失敗 | ||||||
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 | 鍵盤我和我 | 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 | 鍵盤返回 (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 | 鍵盤刪除(退格) | 0x000e | KEY_BACKSPACE | 1.6 | 0x0043 | KEYCODE_DEL | |
0x07 0x002b | 鍵盤選項卡 | 0x000f | KEY_TAB | 1.6 | 0x003d | KEYCODE_TAB | |
0x07 0x002c | 鍵盤空格鍵 | 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 | 非美國鍵盤 # 和 ~ | 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 | 鍵盤大寫鎖定 | 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 | 鍵盤打印屏幕 | 0x0063 | KEY_SYSRQ | 3.0 | 0x0078 | KEYCODE_SYSRQ | |
0x07 0x0047 | 鍵盤滾動鎖定 | 0x0046 | KEY_SCROLLLOCK | 3.0 | 0x0074 | KEYCODE_SCROLL_LOCK | |
0x07 0x0048 | 鍵盤暫停 | 0x0077 | KEY_PAUSE | 3.0 | 0x0079 | KEYCODE_BREAK | |
0x07 0x0049 | 鍵盤插入 | 0x006e | KEY_INSERT | 3.0 | 0x007c | KEYCODE_INSERT | |
0x07 0x004a | 鍵盤主頁 | 0x0066 | KEY_HOME | 3.0 | 0x007a | KEYCODE_MOVE_HOME | |
“” | “” | “” | “” | 1.6 | 0x0003 | KEYCODE_HOME | |
0x07 0x004b | 鍵盤向上翻頁 | 0x0068 | KEY_PAGEUP | 3.0 | 0x005c | KEYCODE_PAGE_UP | |
0x07 0x004c | 鍵盤刪除前進 | 0x006f | KEY_DELETE | 3.0 | 0x0070 | KEYCODE_FORWARD_DEL | |
0x07 0x004d | 鍵盤端 | 0x006b | KEY_END | 3.0 | 0x007b | KEYCODE_MOVE_END | |
“” | “” | “” | “” | 1.6 | 0x0006 | KEYCODE_ENDCALL | |
0x07 0x004e | 鍵盤向下翻頁 | 0x006d | KEY_PAGEDOWN | 3.0 | 0x005d | KEYCODE_PAGE_DOWN | |
0x07 0x004f | 鍵盤右箭頭 | 0x006a | KEY_RIGHT | 1.6 | 0x0016 | KEYCODE_DPAD_RIGHT | |
0x07 0x0050 | 鍵盤左箭頭 | 0x0069 | KEY_LEFT | 1.6 | 0x0015 | KEYCODE_DPAD_LEFT | |
0x07 0x0051 | 鍵盤向下箭頭 | 0x006c | KEY_DOWN | 1.6 | 0x0014 | KEYCODE_DPAD_DOWN | |
0x07 0x0052 | 鍵盤向上箭頭 | 0x0067 | KEY_UP | 1.6 | 0x0013 | KEYCODE_DPAD_UP | |
0x07 0x0053 | 鍵盤數字鎖定和清除 | 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 | 鍵盤輸入 | 0x0060 | KEY_KPENTER | 3.0 | 0x00a0 | KEYCODE_NUMPAD_ENTER | |
0x07 0x0059 | 鍵盤 1 和結束 | 0x004f | KEY_KP1 | 3.0 | 0x0091 | KEYCODE_NUMPAD_1 | |
0x07 0x005a | 鍵盤 2 和向下箭頭 | 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 和左箭頭 | 0x004b | KEY_KP4 | 3.0 | 0x0094 | KEYCODE_NUMPAD_4 | |
0x07 0x005d | 鍵盤 5 | 0x004c | KEY_KP5 | 3.0 | 0x0095 | KEYCODE_NUMPAD_5 | |
0x07 0x005e | 鍵盤 6 和右箭頭 | 0x004d | KEY_KP6 | 3.0 | 0x0096 | KEYCODE_NUMPAD_6 | |
0x07 0x005f | 鍵盤 7 和主頁 | 0x0047 | KEY_KP7 | 3.0 | 0x0097 | KEYCODE_NUMPAD_7 | |
0x07 0x0060 | 小鍵盤 8 和向上箭頭 | 0x0048 | KEY_KP8 | 3.0 | 0x0098 | KEYCODE_NUMPAD_8 | |
0x07 0x0061 | 鍵盤 9 和向上翻頁 | 0x0049 | KEY_KP9 | 3.0 | 0x0099 | KEYCODE_NUMPAD_9 | |
0x07 0x0062 | 鍵盤 0 和插入 | 0x0052 | KEY_KP0 | 3.0 | 0x0090 | KEYCODE_NUMPAD_0 | |
0x07 0x0063 | 鍵盤。和刪除 | 0x0053 | KEY_KPDOT | 3.0 | 0x009e | KEYCODE_NUMPAD_DOT | |
0x07 0x0064 | 非美國鍵盤 \ 和 | | 0x0056 | KEY_102ND | 4.0 | 0x0049 | KEYCODE_BACKSLASH | 1 |
0x07 0x0065 | 鍵盤應用 | 0x007f | KEY_COMPOSE | 3.0 | 0x0052 | KEYCODE_MENU | |
“” | “” | “” | “” | 1.6 | 0x0054 | KEYCODE_SEARCH | |
0x07 0x0066 | 鍵盤電源 | 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 | 鍵盤執行 | 0x0086 | KEY_OPEN | ||||
0x07 0x0075 | 鍵盤幫助 | 0x008a | KEY_HELP | ||||
0x07 0x0076 | 鍵盤菜單 | 0x0082 | KEY_PROPS | ||||
0x07 0x0077 | 鍵盤選擇 | 0x0084 | KEY_FRONT | ||||
0x07 0x0078 | 鍵盤停止 | 0x0080 | KEY_STOP | 3.0 | 0x0056 | KEYCODE_MEDIA_STOP | |
0x07 0x0079 | 再次鍵盤 | 0x0081 | KEY_AGAIN | ||||
0x07 0x007a | 鍵盤撤消 | 0x0083 | KEY_UNDO | ||||
0x07 0x007b | 鍵盤剪輯 | 0x0089 | KEY_CUT | ||||
0x07 0x007c | 鍵盤複製 | 0x0085 | KEY_COPY | ||||
0x07 0x007d | 鍵盤粘貼 | 0x0087 | KEY_PASTE | ||||
0x07 0x007e | 鍵盤查找 | 0x0088 | KEY_FIND | ||||
0x07 0x007f | 鍵盤靜音 | 0x0071 | KEY_MUTE | 3.0 | 0x00a4 | KEYCODE_VOLUME_MUTE | |
0x07 0x0080 | 鍵盤音量調高 | 0x0073 | KEY_VOLUMEUP | 1.6 | 0x0018 | KEYCODE_VOLUME_UP | |
0x07 0x0081 | 鍵盤音量降低 | 0x0072 | KEY_VOLUMEDOWN | 1.6 | 0x0019 | KEYCODE_VOLUME_DOWN | |
0x07 0x0082 | 鍵盤鎖定 大寫鎖定 | ||||||
0x07 0x0083 | 鍵盤鎖定 Num Lock | ||||||
0x07 0x0084 | 鍵盤鎖定滾動鎖定 | ||||||
0x07 0x0085 | 鍵盤逗號 | 0x0079 | KEY_KPCOMMA | 3.0 | 0x009f | KEYCODE_NUMPAD_COMMA | |
0x07 0x0086 | 鍵盤等號 | ||||||
0x07 0x0087 | 國際鍵盤1 | 0x0059 | KEY_RO | ||||
0x07 0x0088 | 國際鍵盤2 | 0x005d | KEY_片假名平假名 | ||||
0x07 0x0089 | 國際鍵盤3 | 0x007c | KEY_YEN | ||||
0x07 0x008a | 國際鍵盤4 | 0x005c | KEY_HENKAN | ||||
0x07 0x008b | 國際鍵盤5 | 0x005e | KEY_MUHENKAN | ||||
0x07 0x008c | 國際鍵盤6 | 0x005f | KEY_KPJPCOMMA | ||||
0x07 0x008d | 國際鍵盤7 | ||||||
0x07 0x008e | 國際鍵盤8 | ||||||
0x07 0x008f | 國際鍵盤9 | ||||||
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 | 鍵盤交替擦除 | ||||||
0x07 0x009a | 鍵盤系統請求/注意 | ||||||
0x07 0x009b | 鍵盤取消 | ||||||
0x07 0x009c | 鍵盤清除 | ||||||
0x07 0x009d | 鍵盤優先 | ||||||
0x07 0x009e | 鍵盤返回 | ||||||
0x07 0x009f | 鍵盤分隔符 | ||||||
0x07 0x00a0 | 鍵盤輸出 | ||||||
0x07 0x00a1 | 鍵盤操作 | ||||||
0x07 0x00a2 | 鍵盤清除/再次 | ||||||
0x07 0x00a3 | 鍵盤 CrSel/道具 | ||||||
0x07 0x00a4 | 鍵盤 ExSel | ||||||
0x07 0x00b0 | 鍵盤 00 | ||||||
0x07 0x00b1 | 鍵盤 000 | ||||||
0x07 0x00b2 | 千位分隔符 | ||||||
0x07 0x00b3 | 小數分隔符 | ||||||
0x07 0x00b4 | 貨幣單位 | ||||||
0x07 0x00b5 | 貨幣子單位 | ||||||
0x07 0x00b6 | 鍵盤( | 0x00b3 | KEY_KPLEFPAREN | 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 | 鍵盤選項卡 | ||||||
0x07 0x00bb | 鍵盤退格 | ||||||
0x07 0x00bc | 鍵盤 A | ||||||
0x07 0x00bd | 鍵盤 B | ||||||
0x07 0x00是 | 鍵盤 C | ||||||
0x07 0x00bf | 鍵盤 D | ||||||
0x07 0x00c0 | 鍵盤 E | ||||||
0x07 0x00c1 | 鍵盤 F | ||||||
0x07 0x00c2 | 鍵盤異或 | ||||||
0x07 0x00c3 | 鍵盤 ^ | ||||||
0x07 0x00c4 | 鍵盤 % | ||||||
0x07 0x00c5 | 鍵盤 < | ||||||
0x07 0x00c6 | 鍵盤 > | ||||||
0x07 0x00c7 | 鍵盤& | ||||||
0x07 0x00c8 | 鍵盤 && | ||||||
0x07 0x00c9 | 鍵盤 | | ||||||
0x07 0x00ca | 鍵盤 || | ||||||
0x07 0x00cb | 鍵盤: | ||||||
0x07 0x00cc | 鍵盤# | ||||||
0x07 0x00cd | 鍵盤空間 | ||||||
0x07 0x00ce | 鍵盤@ | ||||||
0x07 0x00cf | 鍵盤! | ||||||
0x07 0x00d0 | 鍵盤記憶庫 | ||||||
0x07 0x00d1 | 鍵盤內存調用 | ||||||
0x07 0x00d2 | 鍵盤記憶清除 | ||||||
0x07 0x00d3 | 鍵盤內存添加 | ||||||
0x07 0x00d4 | 鍵盤內存減法 | ||||||
0x07 0x00d5 | 鍵盤記憶倍增 | ||||||
0x07 0x00d6 | 鍵盤內存劃分 | ||||||
0x07 0x00d7 | 鍵盤 +/- | ||||||
0x07 0x00d8 | 鍵盤清除 | ||||||
0x07 0x00d9 | 鍵盤清除輸入 | ||||||
0x07 0x00da | 鍵盤二進制 | ||||||
0x07 0x00db | 鍵盤八進制 | ||||||
0x07 0x00dc | 小鍵盤十進制 | ||||||
0x07 0x00dd | 鍵盤十六進制 | ||||||
0x07 0x00e0 | 鍵盤左控制 | 0x001d | KEY_LEFTCTRL | 3.0 | 0x0071 | KEYCODE_CTRL_LEFT | |
0x07 0x00e1 | 鍵盤左移 | 0x002a | KEY_LEFTSHIFT | 1.6 | 0x003b | KEYCODE_SHIFT_LEFT | |
0x07 0x00e2 | 鍵盤左 Alt | 0x0038 | KEY_LEFTALT | 1.6 | 0x0039 | KEYCODE_ALT_LEFT | |
0x07 0x00e3 | 鍵盤左側 GUI | 0x007d | KEY_LEFTMETA | 3.0 | 0x0075 | KEYCODE_META_LEFT | |
0x07 0x00e4 | 鍵盤右鍵控制 | 0x0061 | KEY_RIGHTCTRL | 3.0 | 0x0072 | KEYCODE_CTRL_RIGHT | |
0x07 0x00e5 | 鍵盤右移 | 0x0036 | KEY_RIGHTSHIFT | 1.6 | 0x003c | KEYCODE_SHIFT_RIGHT | |
0x07 0x00e6 | 鍵盤右 Alt | 0x0064 | KEY_RIGHTALT | 1.6 | 0x003a | KEYCODE_ALT_RIGHT | |
0x07 0x00e7 | 鍵盤右 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 使用名稱 | 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 | 系統顯示切換 Int/Ext | ||||||
0x01 0x00b6 | 系統顯示交換 Prim./Sec. | ||||||
0x01 0x00b7 | 系統顯示 LCD 自動刻度 |
HID 消費者頁面 (0x0c)
隱藏使用 | 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 | 在aosp/1365553中添加 | |||
0x0c 0x0069 | 紅色菜單按鈕 | 0x18e | KEY_RED | 0x00b7 | KEYCODE_PROG_RED | 在aosp/1388616中添加 | |
0x0c 0x006a | 綠色菜單按鈕 | 0x18f | KEY_GREEN | 0x00b8 | KEYCODE_PROG_GREEN | 在aosp/1388616中添加 | |
0x0c 0x006b | 藍色菜單按鈕 | 0x191 | KEY_BLUE | 0x00ba | KEYCODE_PROG_BLUE | 在aosp/1388616中添加 | |
0x0c 0x006c | 黃色菜單按鈕 | 0x190 | KEY_YELLOW | 0x00b9 | KEYCODE_PROG_YELLOW | 在aosp/1388616中添加 | |
0x0c 0x0081 | 分配選擇 | ||||||
0x0c 0x0082 | 模式步驟 | ||||||
0x0c 0x0083 | 召回上次 | 0x0195 | KEY_LAST | 0xe5 | KEYCODE_LAST_CHANNEL | 在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 | 媒體選擇錄像機 | 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 | 在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 | 錄像機加 | 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 | 在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 | 鋁電子表格 | 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 | 關鍵新聞 | ||||
0x0c 0x018c | 鋁語音信箱 | 0x01ac | KEY_VOICEMAIL | ||||
0x0c 0x018d | AL 聯繫人/地址簿 | 0x01ad | KEY_ADDRESSBOOK | 4.0.3 | 0x00cf | KEYCODE_CONTACTS | |
0x0c 0x018e | 美聯日曆/時間表 | 0x018d | KEY_CALENDAR | 4.0.3 | 0x00d0 | KEYCODE_CALENDAR | |
0x0c 0x018f | AL 任務/項目經理 | ||||||
0x0c 0x0190 | AL 日誌/日誌/考勤卡 | ||||||
0x0c 0x0191 | AL支票簿/財務 | 0x00db | KEY_FINANCE | ||||
0x0c 0x0192 | 鋁計算器 | 0x008c | KEY_CALC | 4.0.3 | 0x00d2 | KEYCODE_CALCULATOR | |
0x0c 0x0193 | AL A/V 捕捉/播放 | ||||||
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 | 登錄 | ||||||
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 | 美聯文件 | 0x00eb | KEY_DOCUMENTS | ||||
0x0c 0x01a8 | AL 敘詞表 | ||||||
0x0c 0x01a9 | 鋁詞典 | ||||||
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 | 阿爾時鐘 | ||||||
0x0c 0x01b4 | AL 文件瀏覽器 | ||||||
0x0c 0x01b5 | AL Power Status | ||||||
0x0c 0x01b6 | AL Image Browser | 0x00e2 | KEY_MEDIA | 3.0 | 0x004f | KEYCODE_HEADSETHOOK | |
0x0c 0x01b7 | AL Audio Browser | 0x00d5 | KEY_SOUND | 4.0.3 | 0x00d1 | KEYCODE_MUSIC | |
0x0c 0x01b8 | AL Movie Browser | ||||||
0x0c 0x01b9 | AL Digital Rights Manager | ||||||
0x0c 0x01ba | AL Digital Wallet | ||||||
0x0c 0x01bc | AL Instant Messaging | 0x01ae | KEY_MESSENGER | ||||
0x0c 0x01bd | AL OEM Features / Tips Browser | 0x0166 | KEY_INFO | ||||
0x0c 0x01be | AL OEM Help | ||||||
0x0c 0x01bf | AL Online Community | ||||||
0x0c 0x01c0 | AL Entertainment Content Browser | ||||||
0x0c 0x01c1 | AL Online Shopping Browser | ||||||
0x0c 0x01c2 | AL SmartCard Information / Help | ||||||
0x0c 0x01c3 | AL Market / Finance Browser | ||||||
0x0c 0x01c4 | AL Customized Corp. News Browser | ||||||
0x0c 0x01c5 | AL Online Activity Browser | ||||||
0x0c 0x01c6 | AL Research / Search Browser | ||||||
0x0c 0x01c7 | AL Audio Player | ||||||
0x0c 0x0201 | AC New | 0x00b5 | KEY_NEW | ||||
0x0c 0x0202 | AC Open | 0x0086 | KEY_OPEN | ||||
0x0c 0x0203 | AC Close | 0x00ce | KEY_CLOSE | ||||
0x0c 0x0204 | AC Exit | 0x00ae | KEY_EXIT | ||||
0x0c 0x0205 | AC Maximize | ||||||
0x0c 0x0206 | AC Minimize | ||||||
0x0c 0x0207 | AC Save | 0x00ea | KEY_SAVE | ||||
0x0c 0x0208 | AC Print | 0x00d2 | KEY_PRINT | ||||
0x0c 0x0209 | AC Properties | 0x0082 | KEY_PROPS | ||||
0x0c 0x021a | AC Undo | 0x0083 | KEY_UNDO | ||||
0x0c 0x021b | AC Copy | 0x0085 | KEY_COPY | ||||
0x0c 0x021c | AC Cut | 0x0089 | KEY_CUT | ||||
0x0c 0x021d | AC Paste | 0x0087 | KEY_PASTE | ||||
0x0c 0x021e | AC Select All | ||||||
0x0c 0x021f | AC Find | 0x0088 | KEY_FIND | ||||
0x0c 0x0220 | AC Find and Replace | ||||||
0x0c 0x0221 | AC Search | 0x00d9 | KEY_SEARCH | 1.6 | 0x0054 | KEYCODE_SEARCH | |
0x0c 0x0222 | AC Go To | 0x0162 | KEY_GOTO | ||||
0x0c 0x0223 | AC Home | 0x00ac | KEY_HOMEPAGE | 3.0 | 0x0003 | KEYCODE_HOME | |
0x0c 0x0224 | AC Back | 0x009e | KEY_BACK | 1.6 | 0x0004 | KEYCODE_BACK | |
0x0c 0x0225 | AC Forward | 0x009f | KEY_FORWARD | 3.0 | 0x007d | KEYCODE_FORWARD | |
0x0c 0x0226 | AC Stop | 0x0080 | KEY_STOP | 3.0 | 0x0056 | KEYCODE_MEDIA_STOP | |
0x0c 0x0227 | AC Refresh | 0x00ad | KEY_REFRESH | ||||
0x0c 0x0228 | AC Previous Link | ||||||
0x0c 0x0229 | AC Next Link | ||||||
0x0c 0x022a | AC Bookmarks | 0x009c | KEY_BOOKMARKS | 3.0 | 0x00ae | KEYCODE_BOOKMARK | |
0x0c 0x022b | AC History | ||||||
0x0c 0x022c | AC Subscriptions | ||||||
0x0c 0x022d | AC Zoom In | 0x01a2 | KEY_ZOOMIN | ||||
0x0c 0x022e | AC Zoom Out | 0x01a3 | KEY_ZOOMOUT | ||||
0x0c 0x022f | AC Zoom | 0x01a4 | KEY_ZOOMRESET | 2 | |||
0x0c 0x0230 | AC Full Screen View | ||||||
0x0c 0x0231 | AC Normal View | ||||||
0x0c 0x0232 | AC View Toggle | ||||||
0x0c 0x0233 | AC Scroll Up | 0x00b1 | KEY_SCROLLUP | 3.0 | 0x005c | KEYCODE_PAGE_UP | |
0x0c 0x0234 | AC Scroll Down | 0x00b2 | KEY_SCROLLDOWN | 3.0 | 0x005d | KEYCODE_PAGE_DOWN | |
0x0c 0x0236 | AC Pan Left | ||||||
0x0c 0x0237 | AC Pan Right | ||||||
0x0c 0x0239 | AC New Window | ||||||
0x0c 0x023a | AC Tile Horizontally | ||||||
0x0c 0x023b | AC Tile Vertically | ||||||
0x0c 0x023c | AC Format | ||||||
0x0c 0x023d | AC Edit | ||||||
0x0c 0x023e | AC Bold | ||||||
0x0c 0x023f | AC Italics | ||||||
0x0c 0x0240 | AC Underline | ||||||
0x0c 0x0241 | AC Strikethrough | ||||||
0x0c 0x0242 | AC Subscript | ||||||
0x0c 0x0243 | AC Superscript | ||||||
0x0c 0x0244 | AC All Caps | ||||||
0x0c 0x0245 | AC Rotate | ||||||
0x0c 0x0246 | AC Resize | ||||||
0x0c 0x0247 | AC Flip horizontal | ||||||
0x0c 0x0248 | AC Flip Vertical | ||||||
0x0c 0x0249 | AC Mirror Horizontal | ||||||
0x0c 0x024a | AC Mirror Vertical | ||||||
0x0c 0x024b | AC Font Select | ||||||
0x0c 0x024c | AC Font Color | ||||||
0x0c 0x024d | AC Font Size | ||||||
0x0c 0x024e | AC Justify Left | ||||||
0x0c 0x024f | AC Justify Center H | ||||||
0x0c 0x0250 | AC Justify Right | ||||||
0x0c 0x0251 | AC Justify Block H | ||||||
0x0c 0x0252 | AC Justify Top | ||||||
0x0c 0x0253 | AC Justify Center V | ||||||
0x0c 0x0254 | AC Justify Bottom | ||||||
0x0c 0x0255 | AC Justify Block V | ||||||
0x0c 0x0256 | AC Indent Decrease | ||||||
0x0c 0x0257 | AC Indent Increase | ||||||
0x0c 0x0258 | AC Numbered List | ||||||
0x0c 0x0259 | AC Restart Numbering | ||||||
0x0c 0x025a | AC Bulleted List | ||||||
0x0c 0x025b | AC Promote | ||||||
0x0c 0x025c | AC Demote | ||||||
0x0c 0x025d | AC Yes | ||||||
0x0c 0x025e | AC No | ||||||
0x0c 0x025f | AC Cancel | 0x00df | KEY_CANCEL | ||||
0x0c 0x0260 | AC Catalog | ||||||
0x0c 0x0261 | AC Buy / Checkout | ||||||
0x0c 0x0262 | AC Add to Cart | ||||||
0x0c 0x0263 | AC Expand | ||||||
0x0c 0x0264 | AC Expand All | ||||||
0x0c 0x0265 | AC Collapse | ||||||
0x0c 0x0266 | AC Collapse All | ||||||
0x0c 0x0267 | AC Print Preview | ||||||
0x0c 0x0268 | AC Paste Special | ||||||
0x0c 0x0269 | AC Insert Mode | ||||||
0x0c 0x026a | AC Delete | ||||||
0x0c 0x026b | AC Lock | ||||||
0x0c 0x026c | AC Unlock | ||||||
0x0c 0x026d | AC Protect | ||||||
0x0c 0x026e | AC Unprotect | ||||||
0x0c 0x026f | AC Attach Comment | ||||||
0x0c 0x0270 | AC Delete Comment | ||||||
0x0c 0x0271 | AC View Comment | ||||||
0x0c 0x0272 | AC Select Word | ||||||
0x0c 0x0273 | AC Select Sentence | ||||||
0x0c 0x0274 | AC Select Paragraph | ||||||
0x0c 0x0275 | AC Select Column | ||||||
0x0c 0x0276 | AC Select Row | ||||||
0x0c 0x0277 | AC Select Table | ||||||
0x0c 0x0278 | AC Select Object | ||||||
0x0c 0x0279 | AC Redo / Repeat | 0x00b6 | KEY_REDO | ||||
0x0c 0x027a | AC Sort | ||||||
0x0c 0x027b | AC Sort Ascending | ||||||
0x0c 0x027c | AC Sort Descending | ||||||
0x0c 0x027d | AC Filter | ||||||
0x0c 0x027e | AC Set Clock | ||||||
0x0c 0x027f | AC View Clock | ||||||
0x0c 0x0280 | AC Select Time Zone | ||||||
0x0c 0x0281 | AC Edit Time Zones | ||||||
0x0c 0x0282 | AC Set Alarm | ||||||
0x0c 0x0283 | AC Clear Alarm | ||||||
0x0c 0x0284 | AC Snooze Alarm | ||||||
0x0c 0x0285 | AC Reset Alarm | ||||||
0x0c 0x0286 | AC Synchronize | ||||||
0x0c 0x0287 | AC Send/Receive | ||||||
0x0c 0x0288 | AC Send To | ||||||
0x0c 0x0289 | AC Reply | 0x00e8 | KEY_REPLY | ||||
0x0c 0x028a | AC Reply All | ||||||
0x0c 0x028b | AC Forward Msg | 0x00e9 | KEY_FORWARDMAIL | ||||
0x0c 0x028c | AC Send | 0x00e7 | KEY_SEND | ||||
0x0c 0x028d | AC Attach File | ||||||
0x0c 0x028e | AC Upload | ||||||
0x0c 0x028f | AC Download (Save Target As) | ||||||
0x0c 0x0290 | AC Set Borders | ||||||
0x0c 0x0291 | AC Insert Row | ||||||
0x0c 0x0292 | AC Insert Column | ||||||
0x0c 0x0293 | AC Insert File | ||||||
0x0c 0x0294 | AC Insert Picture | ||||||
0x0c 0x0295 | AC Insert Object | ||||||
0x0c 0x0296 | AC Insert Symbol | ||||||
0x0c 0x0297 | AC Save and Close | ||||||
0x0c 0x0298 | AC Rename | ||||||
0x0c 0x0299 | AC Merge | ||||||
0x0c 0x029a | AC Split | ||||||
0x0c 0x029b | AC Distribute Horizontally | ||||||
0x0c 0x029c | AC Distribute Vertically |
Additional non-HID Mappings
These mappings describe functions that do not appear in HID but for which Linux key codes exist.
LKC | Linux Key Code Name | 版本 | AKC | Android Key Code Name | 筆記 |
---|---|---|---|---|---|
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 Key Code Name | 版本 | AKC | Android Key Code Name | 筆記 |
---|---|---|---|---|---|
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