Клавиатуры

Android поддерживает различные клавиатуры, в том числе с дополнительными функциональными клавишами (управление громкостью и питанием), компактные встроенные QWERTY-клавиатуры и полнофункциональные внешние клавиатуры для ПК.

В этой статье рассказывается только о физических клавиатурах. Информацию о программных клавиатурах (редакторах методов ввода) можно найти в 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 или другими клавишами геймпада, то считается, что у устройства есть геймпад.

Требования к драйверу клавиатуры

  1. Драйверы клавиатуры должны регистрировать только коды клавиш, которые они поддерживают. Регистрация лишних кодов клавиш может запутать алгоритм классификации устройств или привести к тому, что система неправильно определит поддерживаемые возможности клавиатуры устройства.

  2. Драйверы клавиатуры должны использовать EV_KEY для сообщения о нажатиях клавиш, используя значение 0, чтобы указать, что клавиша отпущена, значение 1, чтобы указать, что клавиша нажата, и значение, большее или равное 2, чтобы указать, что клавиша повторяется автоматически.

  3. В Android используется собственная функция повтора клавиш. Функция автоповтора должна быть отключена в драйвере.

  4. Драйверы клавиатуры могут указывать использование HID или низкоуровневый скан-код, отправляя EV_MSC с MSC_SCANCODE и значением, указывающим на использование или скан-код при нажатии клавиши. В настоящее время эта информация не используется Android.

  5. Драйверы клавиатуры должны поддерживать настройку состояния светодиодов, когда EV_LED записывается на устройство. Драйвер hid-input делает это автоматически. На момент написания этой статьи в Android используются LED_CAPSLOCK, LED_SCROLLLOCK и LED_NUMLOCK. Эти светодиоды должны поддерживаться, только если на клавиатуре есть соответствующие индикаторы.

  6. Драйверы клавиатуры для встроенных клавиатур (например, использующих матрицу GPIO) должны отправлять события EV_KEY со значением 0 для всех клавиш, которые остаются нажатыми, когда устройство переходит в спящий режим. В противном случае клавиши могут застрять и будут повторяться бесконечно.

Управление с клавиатуры

Ниже приведена краткая информация о работе с клавиатурой на устройствах Android.

  1. EventHub считывает необработанные события из драйвера evdev и сопоставляет коды клавиш Linux (иногда называемые кодами сканирования) с кодами клавиш Android, используя карту раскладки клавиатуры.

  2. InputReader обрабатывает необработанные события и обновляет состояние метаклавиши. Например, если нажать или отпустить левую клавишу Shift, программа чтения установит или сбросит биты META_SHIFT_LEFT_ON и META_SHIFT_ON соответственно.

  3. InputReader уведомляет InputDispatcher о ключевом событии.

  4. InputDispatcher спрашивает у WindowManagerPolicy, что делать с ключевым событием, вызывая WindowManagerPolicy.interceptKeyBeforeQueueing. Этот метод является частью критического пути, который отвечает за вывод устройства из спящего режима при нажатии определенных клавиш. EventHub эффективно удерживает блокировку пробуждения на этом критическом пути, чтобы обеспечить его выполнение до конца.

  5. Если в данный момент используется InputFilter, InputDispatcher дает ему возможность использовать или преобразовать ключ. InputFilter можно использовать для реализации низкоуровневых системных правил доступности.

  6. InputDispatcher добавляет ключ в очередь для обработки в потоке отправки.

  7. Когда InputDispatcher извлекает клавишу из очереди, он дает WindowManagerPolicy второй шанс перехватить событие клавиши, вызывая WindowManagerPolicy.interceptKeyBeforeDispatching. Этот метод обрабатывает системные сочетания клавиш и другие функции.

  8. Затем InputDispatcher определяет целевое ключевое событие (активное окно) и ждет, пока оно будет готово. Затем InputDispatcher передает ключевое событие приложению.

  9. Внутри приложения ключевое событие распространяется по иерархии View до View, находящегося в фокусе, для отправки ключа до IME.

  10. Если ключевое событие не обрабатывается в предварительной отправке IME и используется IME, ключевое событие доставляется в IME.

  11. Если ключевое событие не было обработано IME, оно передается вниз по иерархии View к представлению, находящемуся в фокусе, для стандартной отправки ключа.

  12. Приложение сообщает InputDispatcher, было ли использовано ключевое событие. Если событие не было обработано, InputDispatcher вызывает WindowManagerPolicy.dispatchUnhandledKey, чтобы применить резервное поведение. В зависимости от резервного действия цикл отправки ключевого события может быть перезапущен с использованием другого кода клавиши. Например, если приложение не обрабатывает KEYCODE_ESCAPE, система может перенаправить ключевое событие как KEYCODE_BACK.

Настройка клавиатуры

Поведение клавиатуры определяется ее раскладкой, таблицей символов и конфигурацией устройства ввода.

В следующих разделах приведены подробные сведения о файлах, которые участвуют в настройке клавиатуры:

Свойства

Для клавиатур используются следующие свойства конфигурации устройства ввода:

keyboard.layout

Определение: keyboard.layout = <name>

Указывает название файла раскладки клавиатуры, связанного с устройством ввода, без расширения .kl. Если этот файл не найден, система ввода будет использовать раскладку клавиатуры по умолчанию.

При поиске пробелы в названии заменяются на символы подчеркивания.

Подробная информация приведена в документации по файлу раскладки клавиатуры.

keyboard.characterMap

Определение. keyboard.characterMap – это <name>.

Указывает название файла раскладки клавиатуры, связанного с устройством ввода, без расширения .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

Указывает, является ли клавиатура встроенной (физически подключенной).

Значение по умолчанию – 1, если название устройства заканчивается на -keypad, и 0 в остальных случаях.

Встроенной клавиатуре всегда присваивается идентификатор устройства 0. Другим клавиатурам, не встроенным в устройство, присваиваются уникальные ненулевые идентификаторы устройств.

Использование идентификатора 0 для встроенной клавиатуры важно для обеспечения совместимости с полем KeyCharacterMap.BUILT_IN_KEYBOARD, в котором указывается идентификатор встроенной клавиатуры и значение 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. Формат файла keycharactermap также сильно отличался, а фреймворк не поддерживал полноразмерные клавиатуры, как у ПК, и внешние клавиатуры.

При обновлении устройств до Honeycomb обязательно создайте или обновите необходимые файлы конфигурации и раскладки клавиатуры.

Использование HID, коды клавиш Linux и Android

Система ссылается на ключи, используя несколько разных идентификаторов, в зависимости от уровня абстракции.

Для HID-устройств с каждой клавишей связано назначение HID. Драйвер Linux hid-input и связанные с ним драйверы HID, предназначенные для определенных устройств и поставщиков, отвечают за анализ отчетов HID и сопоставление использования HID с кодами клавиш Linux.

Когда Android считывает события EV_KEY из ядра Linux, он преобразует каждый код клавиши Linux в соответствующий код клавиши Android в соответствии с файлом раскладки клавиш устройства.

Когда ключевое событие отправляется в приложение, android.view.KeyEventэкземпляр сообщает код клавиши Linux как значение getScanCode() и код клавиши Android как значение getKeyCode(). Для целей фреймворка важно только значение getKeyCode().

Обратите внимание, что информация об использовании HID не применяется в Android и не передается приложениям.

Таблицы кодов

В таблицах ниже показано, как связаны между собой коды клавиш HID, Linux и Android.

В столбце LKC указан шестнадцатеричный код клавиши Linux.

В столбце AKC указан шестнадцатеричный код клавиши Android.

В столбце "Примечания" указаны ссылки на примечания, которые приведены после таблицы.

В столбце "Версия" указана первая версия платформы Android, в которой этот ключ был включен в карту ключей по умолчанию. Если раскладка по умолчанию менялась в разных версиях, будет показано несколько строк. Самая старая указанная версия – 1.6.

  • В Gingerbread (2.3) и более ранних версиях по умолчанию использовалась раскладка qwerty.kl. Эта раскладка предназначалась только для использования с эмулятором Android и не предназначалась для поддержки произвольных внешних клавиатур. Тем не менее некоторые производители добавили поддержку Bluetooth-клавиатур и использовали qwerty.kl для сопоставления клавиш. Поэтому эти старые сопоставления могут быть интересны OEM-производителям, которые создают периферийные устройства для этих конкретных устройств. Обратите внимание, что новые сопоставления существенно отличаются от текущих, особенно в отношении обработки ключа HOME. Рекомендуется разрабатывать все новые периферийные устройства в соответствии с раскладкой Honeycomb или более поздней (например, стандартной HID).

  • В версии Honeycomb (3.0) по умолчанию используется раскладка Generic.kl. Эта раскладка клавиатуры предназначена для полноразмерных клавиатур ПК. Большинство функций стандартных HID-клавиатур должны работать сразу после подключения.

Сопоставление кодов клавиш может различаться в разных версиях ядра Linux и Android. Если в стандартных раскладках Android произошли изменения, это будет указано в столбце "Версия".

В драйверах HID и раскладках клавиатуры для конкретных устройств могут использоваться другие сопоставления.

Страница HID-клавиатуры и цифровой клавиатуры (0x07)

Использование HID-устройств Название использования HID LKC Название кода клавиши Linux Версия AKC Кодовое название клавиши Android Примечания
0x07 0x0001 Keyboard Error Roll Over
0x07 0x0002 Сбой POST при проверке клавиатуры
0x07 0x0003 Неизвестная ошибка клавиатуры
0x07 0x0004 Клавиатура: a и A 0x001e KEY_A 1.6 0x001d KEYCODE_A 1
0x07 0x0005 Клавиши "Б" и "б" 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 Клавиша возврата (ВВОД) 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 Вкладка "Клавиатура" 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 Клавиша 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 Приостановка с помощью клавиатуры 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 Клавиша Page Up на клавиатуре 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 Клавиша Page Down на клавиатуре 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 Клавиши 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 Ввод с клавиатуры 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 на цифровой клавиатуре и Стрелка вниз 0x0050 KEY_KP2 3,0 0x0092 KEYCODE_NUMPAD_2
0x07 0x005b Клавиши 3 на цифровой клавиатуре и Page Down 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 Keypad 7 и Home 0x0047 KEY_KP7 3,0 0x0097 KEYCODE_NUMPAD_7
0x07 0x0060 Клавиша 8 на цифровой клавиатуре и Стрелка вверх 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 Клавиатура . и "Удалить" 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 Клавиша Caps Lock
0x07 0x0083 Блокировка клавиатуры (Num Lock)
0x07 0x0084 Блокировка клавиатуры (Scroll Lock)
0x07 0x0085 Запятая на цифровой клавиатуре 0x0079 KEY_KPCOMMA 3,0 0x009f KEYCODE_NUMPAD_COMMA
0x07 0x0086 Знак равенства на цифровой клавиатуре
0x07 0x0087 Keyboard 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 Клавиатура (международная)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 Клавиша SysReq/Attention
0x07 0x009b Отмена с помощью клавиатуры
0x07 0x009c Очистить клавиатуру
0x07 0x009d Предыдущая клавиатура
0x07 0x009e Клавиша "Return"
0x07 0x009f Разделитель клавиатуры
0x07 0x00a0 Выход для клавиатуры
0x07 0x00a1 Клавиатура
0x07 0x00a2 Очистить/повторить (клавиатура)
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 Вкладка "Клавиатура"
0x07 0x00bb Backspace на цифровой клавиатуре
0x07 0x00bc Клавиатура A
0x07 0x00bd Клавиатура Б
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 Пробел на клавиатуре
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 Левая клавиша Ctrl 0x001d KEY_LEFTCTRL 3,0 0x0071 KEYCODE_CTRL_LEFT
0x07 0x00e1 Левая клавиша Shift 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 Клавиатура: правая клавиша Control 0x0061 KEY_RIGHTCTRL 3,0 0x0072 KEYCODE_CTRL_RIGHT
0x07 0x00e5 Правая клавиша Shift 0x0036 KEY_RIGHTSHIFT 1.6 0x003c KEYCODE_SHIFT_RIGHT
0x07 0x00e6 Клавиатура: правый Alt 0x0064 KEY_RIGHTALT 1.6 0x003a KEYCODE_ALT_RIGHT
0x07 0x00e7 Keyboard 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 System Debugger Break
0x01 0x00a5 Перерыв в работе приложения
0x01 0x00a6 Application Debugger Break
0x01 0x00a7 Отключить звук
0x01 0x00a8 Перевод системы в спящий режим
0x01 0x00b0 Инверсия цветов экрана
0x01 0x00b1 Внутренний дисплей системы
0x01 0x00b2 Внешний экран
0x01 0x00b3 Системный дисплей (оба)
0x01 0x00b4 Два системных экрана
0x01 0x00b5 Переключение между внутренним и внешним экранами
0x01 0x00b6 Переключение основного и дополнительного дисплея в системе
0x01 0x00b7 System Display LCD Autoscale

Страница 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 Добавлено в 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 Media Select TV 0x0179 KEY_TV 3,0 0x00aa KEYCODE_TV
0x0c 0x008a Media Select WWW 0x0096 KEY_WWW 1.6 0x0040 KEYCODE_EXPLORER
0x0c 0x008b Media Select DVD 0x0185 KEY_DVD
0x0c 0x008c Выбор медиаконтента (телефон) 0x00a9 KEY_PHONE 3,0 0x0005 KEYCODE_CALL
0x0c 0x008d Руководство по программе Media Select 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 Media Select CD 0x017f KEY_CD
0x0c 0x0092 VCR для выбора медиа 0x017b KEY_VCR
0x0c 0x0093 Media Select Tuner 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 Выбор спутника Media 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 Media Select 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 Добавлено в 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 Word Processor 0x01a5 KEY_WORDPROCESSOR
0x0c 0x0185 AL Text Editor 0x01a6 KEY_EDITOR
0x0c 0x0186 Таблица AL 0x01a7 KEY_SPREADSHEET
0x0c 0x0187 AL Graphics Editor 0x01a8 KEY_GRAPHICSEDITOR
0x0c 0x0188 Приложение для презентаций AL 0x01a9 KEY_PRESENTATION
0x0c 0x0189 Приложение AL Database 0x01aa KEY_DATABASE
0x0c 0x018a AL Email Reader 0x009b KEY_MAIL 1.6 0x0041 KEYCODE_ENVELOPE
0x0c 0x018b AL Newsreader 0x01ab KEY_NEWS
0x0c 0x018c Голосовая почта AL 0x01ac KEY_VOICEMAIL
0x0c 0x018d AL Contacts / Address Book 0x01ad KEY_ADDRESSBOOK 4.0.3 0x00cf KEYCODE_CONTACTS
0x0c 0x018e AL Calendar / Schedule 0x018d KEY_CALENDAR 4.0.3 0x00d0 KEYCODE_CALENDAR
0x0c 0x018f AL Task / Project Manager
0x0c 0x0190 Журнал / дневник / табель учета рабочего времени
0x0c 0x0191 AL Checkbook / Finance 0x00db KEY_FINANCE
0x0c 0x0192 Калькулятор AL 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATOR
0x0c 0x0193 AL A/V Capture / Playback
0x0c 0x0194 AL Local Machine Browser 0x0090 KEY_FILE
0x0c 0x0195 AL LAN/WAN Browser
0x0c 0x0196 AL Internet Browser 0x0096 KEY_WWW 1.6 0x0040 KEYCODE_EXPLORER
0x0c 0x0197 AL Remote Networking/ISP Connect
0x0c 0x0198 AL Network Conference
0x0c 0x0199 Чат в сети AL 0x00d8 KEY_CHAT
0x0c 0x019a AL Telephony / Dialer
0x0c 0x019b AL Logon
0x0c 0x019c AL Logoff 0x01b1 KEY_LOGOFF
0x0c 0x019d AL Logon / Logoff
0x0c 0x019e AL Terminal Lock / Screensaver 0x0098 KEY_COFFEE 4.0 0x001a KEYCODE_POWER
0x0c 0x019f Панель управления AL
0x0c 0x01a0 AL Command Line Processor / Run
0x0c 0x01a1 Диспетчер задач AL Process
0x0c 0x01a2 AL Select Task / Application
0x0c 0x01a3 AL Next Task / Application
0x0c 0x01a4 Предыдущая задача / приложение
0x0c 0x01a5 Задача / приложение для упреждающей остановки AL.
0x0c 0x01a6 Справочный центр AL 0x008a KEY_HELP
0x0c 0x01a7 Документы AL 0x00eb KEY_DOCUMENTS
0x0c 0x01a8 Тезаурус AL
0x0c 0x01a9 Словарь AL
0x0c 0x01aa AL Desktop
0x0c 0x01ab Проверка правописания AL 0x01b0 KEY_SPELLCHECK
0x0c 0x01ac Проверка грамматики AL
0x0c 0x01ad Статус беспроводной сети AL
0x0c 0x01ae Раскладка клавиатуры AL
0x0c 0x01af AL Virus Protection
0x0c 0x01b0 Шифрование AL
0x0c 0x01b1 Заставка AL
0x0c 0x01b2 AL Alarms
0x0c 0x01b3 Часы AL
0x0c 0x01b4 Файловый менеджер AL
0x0c 0x01b5 Статус питания AL
0x0c 0x01b6 AL Image Browser 0x00e2 KEY_MEDIA 3,0 0x004f KEYCODE_HEADSETHOOK
0x0c 0x01b7 Браузер аудио AL 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 0x01ae KEY_MESSENGER
0x0c 0x01bd AL OEM Features / Tips Browser 0x0166 KEY_INFO
0x0c 0x01be Справка по AL OEM
0x0c 0x01bf Интернет-сообщество AL
0x0c 0x01c0 AL Entertainment Content Browser
0x0c 0x01c1 AL Online Shopping Browser
0x0c 0x01c2 Информация о карте AL SmartCard и справка
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 Закрытие кампании для приложений 0x00ce KEY_CLOSE
0x0c 0x0204 Выход из кампании для приложений 0x00ae KEY_EXIT
0x0c 0x0205 Максимум конверсий в кампаниях для приложений
0x0c 0x0206 Свернуть кампанию для приложений
0x0c 0x0207 Экономия энергии кондиционера 0x00ea KEY_SAVE
0x0c 0x0208 Печать в кампании для приложений 0x00d2 KEY_PRINT
0x0c 0x0209 Свойства кампаний для приложений 0x0082 KEY_PROPS
0x0c 0x021a Отмена действия в кампании 0x0083 KEY_UNDO
0x0c 0x021b Текст для кампаний, ориентированных на приложения 0x0085 KEY_COPY
0x0c 0x021c AC Cut 0x0089 KEY_CUT
0x0c 0x021d Вставить (AC) 0x0087 KEY_PASTE
0x0c 0x021e AC Select All
0x0c 0x021f Поиск в AC 0x0088 KEY_FIND
0x0c 0x0220 Поиск и замена в кампаниях для приложений
0x0c 0x0221 Поиск в аккаунте клиента 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 Назад 0x009e KEY_BACK 1.6 0x0004 KEYCODE_BACK
0x0c 0x0225 AC Forward 0x009f KEY_FORWARD 3,0 0x007d KEYCODE_FORWARD
0x0c 0x0226 Остановка кондиционирования воздуха 0x0080 KEY_STOP 3,0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x0227 Обновление кондиционера 0x00ad KEY_REFRESH
0x0c 0x0228 AC Previous Link
0x0c 0x0229 AC Next Link
0x0c 0x022a Закладки в Chrome 0x009c KEY_BOOKMARKS 3,0 0x00ae KEYCODE_BOOKMARK
0x0c 0x022b История AC
0x0c 0x022c Кампании, ориентированные на подписки
0x0c 0x022d Увеличение масштаба в AC 0x01a2 KEY_ZOOMIN
0x0c 0x022e AC Zoom Out 0x01a3 KEY_ZOOMOUT
0x0c 0x022f AC Zoom 0x01a4 KEY_ZOOMRESET 2
0x0c 0x0230 Полноэкранный режим
0x0c 0x0231 Обычный вид AC
0x0c 0x0232 Переключатель просмотра в кампании
0x0c 0x0233 Прокрутка вверх (кампания для приложений) 0x00b1 KEY_SCROLLUP 3,0 0x005c KEYCODE_PAGE_UP
0x0c 0x0234 Прокрутка вниз в приложении 0x00b2 KEY_SCROLLDOWN 3,0 0x005d KEYCODE_PAGE_DOWN
0x0c 0x0236 Панорамирование влево (специальные возможности)
0x0c 0x0237 Передвинуть вправо (кондиционер)
0x0c 0x0239 Новое окно AC
0x0c 0x023a AC Tile Horizontally
0x0c 0x023b AC Tile Vertically
0x0c 0x023c Формат AC
0x0c 0x023d Изменение кампании, ориентированной на конверсии
0x0c 0x023e AC Bold
0x0c 0x023f Курсив
0x0c 0x0240 Подчеркивание
0x0c 0x0241 Зачеркнутый текст
0x0c 0x0242 Подстрочный текст
0x0c 0x0243 AC Superscript
0x0c 0x0244 AC All Caps
0x0c 0x0245 Поворот
0x0c 0x0246 Изменение размера в AC
0x0c 0x0247 AC Flip horizontal
0x0c 0x0248 AC Flip Vertical
0x0c 0x0249 AC Mirror Horizontal
0x0c 0x024a AC Mirror Vertical
0x0c 0x024b Выбор шрифта для автозаполнения
0x0c 0x024c Цвет шрифта
0x0c 0x024d Размер шрифта AC
0x0c 0x024e AC Justify Left
0x0c 0x024f AC Justify Center H
0x0c 0x0250 Выравнивание по правому краю
0x0c 0x0251 AC Justify Block H
0x0c 0x0252 Выравнивание по верхнему краю
0x0c 0x0253 Выровнять по центру (вертикально)
0x0c 0x0254 Выровнять по нижнему краю
0x0c 0x0255 Выравнивание по ширине (вертикальн.)
0x0c 0x0256 Уменьшить отступ
0x0c 0x0257 Увеличить отступ
0x0c 0x0258 Нумерованный список AC
0x0c 0x0259 AC Restart Numbering
0x0c 0x025a Маркированный список AC
0x0c 0x025b Продвижение приложений
0x0c 0x025c Понижение в кампании для приложений
0x0c 0x025d Кондиционирование воздуха: Да
0x0c 0x025e AC №
0x0c 0x025f Отмена AC 0x00df KEY_CANCEL
0x0c 0x0260 Каталог AC
0x0c 0x0261 Покупка или оформление заказа в приложении
0x0c 0x0262 Добавление в корзину
0x0c 0x0263 Развертывание кампании для приложений
0x0c 0x0264 Развернуть все
0x0c 0x0265 Свернуть
0x0c 0x0266 Свернуть все
0x0c 0x0267 Предпросмотр печати
0x0c 0x0268 Специальная вставка в кампаниях для приложений
0x0c 0x0269 Режим вставки AC
0x0c 0x026a Удаление кампании, ориентированной на установку приложений
0x0c 0x026b Блокировка кондиционера
0x0c 0x026c Кампания, ориентированная на разблокировку
0x0c 0x026d Кампания, ориентированная на безопасность
0x0c 0x026e AC Unprotect
0x0c 0x026f Комментарий к прикрепленному файлу в кампании для приложений
0x0c 0x0270 AC Delete Comment
0x0c 0x0271 Посмотреть комментарий в кампании для приложений
0x0c 0x0272 Выбрать слово (AC)
0x0c 0x0273 AC Select Sentence
0x0c 0x0274 Выбрать абзац
0x0c 0x0275 AC Select Column
0x0c 0x0276 Выбрать строку
0x0c 0x0277 AC Select Table
0x0c 0x0278 AC Select Object
0x0c 0x0279 Повтор / переделка 0x00b6 KEY_REDO
0x0c 0x027a Сортировка по переменному току
0x0c 0x027b Сортировка по возрастанию
0x0c 0x027c Сортировка по убыванию
0x0c 0x027d Фильтр кондиционера
0x0c 0x027e AC Set Clock
0x0c 0x027f Часы в режиме просмотра кондиционера
0x0c 0x0280 AC Select Time Zone
0x0c 0x0281 AC Edit Time Zones
0x0c 0x0282 Установка будильника на часах
0x0c 0x0283 Оповещение об отмене угрозы
0x0c 0x0284 Отложенный будильник
0x0c 0x0285 Сигнал сброса настроек кондиционера
0x0c 0x0286 Синхронизация кампаний, ориентированных на установку приложений
0x0c 0x0287 Отправка и получение писем с адресом AC
0x0c 0x0288 AC Send To
0x0c 0x0289 Ответы на основе ИИ 0x00e8 KEY_REPLY
0x0c 0x028a AC Reply All
0x0c 0x028b AC Forward Msg 0x00e9 KEY_FORWARDMAIL
0x0c 0x028c Отправка AC 0x00e7 KEY_SEND
0x0c 0x028d AC Attach File
0x0c 0x028e Загрузка в кампании для приложений
0x0c 0x028f Скачивание AC (сохранить объект как)
0x0c 0x0290 AC: задать границы
0x0c 0x0291 AC Insert Row
0x0c 0x0292 AC: вставка столбца
0x0c 0x0293 AC Insert File
0x0c 0x0294 AC Insert Picture
0x0c 0x0295 Вставка объекта с помощью ИИ
0x0c 0x0296 Символ вставки AC
0x0c 0x0297 Сохранить и закрыть
0x0c 0x0298 Переименование кампании, ориентированной на приложения
0x0c 0x0299 Объединение аккаунтов
0x0c 0x029a Разделение кампаний, ориентированных на установку приложений
0x0c 0x029b Распределить по горизонтали
0x0c 0x029c AC Distribute Vertically

Дополнительные сопоставления, не относящиеся к HID

В этих сопоставлениях описаны функции, которые не представлены в HID, но для которых существуют коды клавиш Linux.

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

Неподдерживаемые ключи устаревшей версии

Эти сопоставления использовались в предыдущих версиях Android, но не соответствовали HID или использовали нестандартные коды клавиш Linux. Они больше не поддерживаются.

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

Примечания

  1. Код клавиши Android, связанный с распространенными буквенно-цифровыми и символьными клавишами, может различаться в зависимости от раскладки клавиатуры и языка. По историческим причинам физические коды сканирования и использования HID, связанные с клавишами на клавиатуре, часто определяются позиционно, хотя надписи на этих клавишах могут различаться в зависимости от языка.

    На клавиатуре с английской раскладкой (США) QWERTY верхняя левая клавиша с буквой – это Q. На французской клавиатуре (AZERTY) клавиша в том же положении обозначена буквой А. Несмотря на маркировку, на обеих клавиатурах верхняя левая буквенная клавиша обозначается с помощью HID-кода 0x07 0x0014, который сопоставляется с кодом клавиши Linux KEY_Q.

    Если в Android настроена раскладка клавиатуры "Английский (США)", то код клавиши Linux KEY_Q будет сопоставлен с кодом клавиши Android KEYCODE_Q и будет вводить символы Q и q. Однако если в Android выбрана французская раскладка клавиатуры, код Linux KEY_Q будет сопоставлен с кодом Android KEYCODE_A и будет создавать символы "A" и "a".

    Код клавиши Android обычно отражает интерпретацию клавиши на определенном языке, поэтому для разных языков может использоваться разный код клавиши Android.

  2. 0x0c 0x022f AC Zoom определяется в HID как линейный элемент управления, но ядро сопоставляет его как ключ, что, вероятно, неверно.

  3. Функциональные клавиши Linux KEY_FN_* сопоставляются с более простыми кодами клавиш, но отправляются с битом метасостояния META_FUNCTION, для которого задано значение true.

  4. До Android Ice Cream Sandwich 4.0 раскладка клавиш по умолчанию содержала сопоставления для некоторых дополнительных кодов клавиш, которые не были определены в основных заголовках ядра Linux. Впоследствии эти сопоставления были удалены, поскольку ранее неопределенным кодам клавиш были присвоены другие значения в более поздних версиях ядра Linux.

Источники

  1. Таблицы использования USB HID версии 1.12
  2. Ядро Linux 2.6.39: include/linux/input.h, drivers/hid/hid-input.c
  3. Android ICS: qwerty.kl, Generic.kl, KeyEvent.java