Клавиатурные устройства

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

В этом документе описаны только физические клавиатуры. Дополнительную информацию о программных клавиатурах (редакторах методов ввода) см. в Android SDK.

Классификация клавиатуры

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

  • Устройство ввода сообщает о наличии любых кодов клавиш Linux, используемых на клавиатуре, включая 0 до 0xff или KEY_OK до KEY_MAX .

  • Устройство ввода сообщает о наличии любых кодов клавиш Linux, используемых на джойстиках и геймпадах, включая BTN_0BTN_9 , BTN_TRIGGERBTN_DEAD или BTN_ABTN_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. Внутри приложения ключевое событие распространяется вниз по иерархии представлений к сфокусированному представлению для отправки ключа перед IME.

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

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

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

Конфигурация клавиатуры

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

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

Характеристики

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

клавиатура.раскладка

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

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

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

Более подробную информацию можно найти в документации к файлу раскладки клавиш.

клавиатура.characterMap

Определение: keyboard.characterMap = <имя>

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

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

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

клавиатура.orientationAware

Определение: keyboard.orientationAware = 0 | 1

Указывает, должна ли клавиатура реагировать на изменения ориентации экрана.

  • Если значение равно 1 , клавиши направления на клавиатуре поворачиваются при изменении ориентации связанного дисплея.

  • Если значение равно 0 , клавиатура невосприимчива к изменениям ориентации дисплея.

Значение по умолчанию — 0 .

Осведомленность об ориентации используется для поддержки вращения клавиш клавиатуры, например, на Motorola Droid. Например, когда устройство поворачивается по часовой стрелке на 90 градусов от его естественной ориентации, KEYCODE_DPAD_UP переназначается на KEYCODE_DPAD_RIGHT , поскольку клавиша «вверх» в конечном итоге указывает «вправо», когда устройство удерживается в этой ориентации.

клавиатура.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 . Формат карты ключевых символов также сильно отличался, и платформа не поддерживала полные клавиатуры в стиле ПК или внешние клавиатуры.

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

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

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

Для устройств HID каждая клавиша имеет связанное с ней использование HID. Драйвер hid-input Linux и соответствующие драйверы 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 и не предназначалась для поддержки произвольных внешних клавиатур. Тем не менее, некоторые OEM-производители добавили в платформу поддержку клавиатуры Bluetooth и использовали qwerty.kl для обеспечения необходимых раскладок клавиатуры. Следовательно, эти старые сопоставления могут представлять интерес для OEM-производителей, создающих периферийные устройства для этих конкретных устройств. Обратите внимание, что сопоставления существенно отличаются от текущих, особенно в отношении обработки клавиши HOME . Рекомендуется разрабатывать все новые периферийные устройства в соответствии с раскладкой клавиш Honeycomb или более поздними версиями (т. е. стандартным HID).

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

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

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

HID-клавиатура и страница клавиатуры (0x07)

Использование HID Имя использования HID ЛКС Имя кода ключа Linux Версия АКС Название кода ключа Android Примечания
0x07 0x0001 Ошибка клавиатуры
0x07 0x0002 Ошибка POST клавиатуры
0x07 0x0003 Ошибка клавиатуры не определена
0x07 0x0004 Клавиатура А и А 0x001e КЛЮЧ_А 1,6 0x001d КОД КЛЮЧА_A 1
0x07 0x0005 Клавиатура Б и Б 0x0030 KEY_B 1,6 0x001e КОД КЛЮЧА_B 1
0x07 0x0006 Клавиатура С и С 0x002e KEY_C 1,6 0x001f КОД КЛЮЧА_C 1
0x07 0x0007 Клавиатура d и D 0x0020 KEY_D 1,6 0x0020 КОД КЛЮЧА_D 1
0x07 0x0008 Клавиатура е и е 0x0012 KEY_E 1,6 0x0021 КОД КЛЮЧА_E 1
0x07 0x0009 Клавиатура f и F 0x0021 KEY_F 1,6 0x0022 КОД КЛЮЧА_F 1
0x07 0x000a Клавиатура g и G 0x0022 KEY_G 1,6 0x0023 КОД_КЛЮЧА_G 1
0x07 0x000b Клавиатура h и H 0x0023 KEY_H 1,6 0x0024 КОД КЛЮЧА_H 1
0x07 0x000c Клавиатура я и я 0x0017 KEY_I 1,6 0x0025 КОД КЛЮЧА_I 1
0x07 0x000d Клавиатура J и J 0x0024 KEY_J 1,6 0x0026 КОД_КЛЮЧА_J 1
0x07 0x000e Клавиатура К и К 0x0025 KEY_K 1,6 0x0027 КОД КЛЮЧА_K 1
0x07 0x000f Клавиатура л и л 0x0026 KEY_L 1,6 0x0028 КОД_КЛЮЧА_L 1
0x07 0x0010 Клавиатура м и м 0x0032 KEY_M 1,6 0x0029 КОД КЛЮЧА_M 1
0x07 0x0011 Клавиатура n и N 0x0031 KEY_N 1,6 0x002a КОД КЛЮЧА_N 1
0x07 0x0012 Клавиатура о и о 0x0018 KEY_O 1,6 0x002b КОД КЛЮЧА_O 1
0x07 0x0013 Клавиатура p и p 0x0019 KEY_P 1,6 0x002c КОД КЛЮЧА_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 КОД КЛЮЧА_R 1
0x07 0x0016 Клавиатура S и S 0x001f KEY_S 1,6 0x002f КОД КЛЮЧА_S 1
0x07 0x0017 Клавиатура Т и Т 0x0014 KEY_T 1,6 0x0030 КОД КЛЮЧА_T 1
0x07 0x0018 Клавиатура ю и ю 0x0016 KEY_U 1,6 0x0031 КОД КЛЮЧА_U 1
0x07 0x0019 Клавиатура v и v 0x002f KEY_V 1,6 0x0032 КОД КЛЮЧА_V 1
0x07 0x001a Клавиатура w и W 0x0011 KEY_W 1,6 0x0033 КОД КЛЮЧА_W 1
0x07 0x001b Клавиатура х и х 0x002d KEY_X 1,6 0x0034 КОД КЛЮЧА_X 1
0x07 0x001c Клавиатура y и y 0x0015 KEY_Y 1,6 0x0035 КОД КЛЮЧА_Y 1
0x07 0x001d Клавиатура Z и Z 0x002c KEY_Z 1,6 0x0036 KEYCODE_Z 1
0x07 0x001e Клавиатура 1 и ! 0x0002 КЛЮЧ_1 1,6 0x0008 КОД КЛЮЧА_1 1
0x07 0x001f Клавиатура 2 и @ 0x0003 КЛЮЧ_2 1,6 0x0009 КОД_КЛЮЧА_2 1
0x07 0x0020 Клавиатура 3 и # 0x0004 КЛЮЧ_3 1,6 0x000a КОД_КЛЮЧА_3 1
0x07 0x0021 Клавиатура 4 и $ 0x0005 КЛЮЧ_4 1,6 0x000b КОД_КЛЮЧА_4 1
0x07 0x0022 Клавиатура 5 и % 0x0006 КЛЮЧ_5 1,6 0x000c КОД КЛЮЧА_5 1
0x07 0x0023 Клавиатура 6 и ^ 0x0007 КЛЮЧ_6 1,6 0x000d КОД КЛЮЧА_6 1
0x07 0x0024 Клавиатура 7 и & 0x0008 КЛЮЧ_7 1,6 0x000e КОД КЛЮЧА_7 1
0x07 0x0025 Клавиатура 8 и * 0x0009 КЛЮЧ_8 1,6 0x000f КОД_КЛЮЧА_8 1
0x07 0x0026 Клавиатура 9 и ( 0x000a КЛЮЧ_9 1,6 0x0010 КОД_КЛЮЧА_9 1
0x07 0x0027 Клавиатура 0 и ) 0x000b КЛЮЧ_0 1,6 0x0007 КОД_КЛЮЧА_0 1
0x07 0x0028 Возврат клавиатуры (ENTER) 0x001c KEY_ENTER 1,6 0x0042 КОД_КЛЮЧА_ВВОД 1
0x07 0x0029 Клавиатура ESCAPE 0x0001 KEY_ESC 3.0 0x006f КОД_КЛЮЧА_ESCAPE
"" "" "" "" 2.3 0x0004 KEYCODE_BACK
0x07 0x002a Клавиатура DELETE (Backspace) 0x000e KEY_BACKSPACE 1,6 0x0043 КОД_КЛЮЧА_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 КОД_КЛЮЧА_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 КОД КЛЮЧА_F1
"" "" "" "" 1,6 0x0052 KEYCODE_MENU
0x07 0x003b Клавиатура F2 0x003c KEY_F2 3.0 0x0084 КОД КЛЮЧА_F2
"" "" "" "" 1,6 0x0002 KEYCODE_SOFT_RIGHT
0x07 0x003c Клавиатура F3 0x003d KEY_F3 3.0 0x0085 КОД КЛЮЧА_F3
"" "" "" "" 1,6 0x0005 KEYCODE_CALL
0x07 0x003d Клавиатура F4 0x003e KEY_F4 3.0 0x0086 КОД КЛЮЧА_F4
"" "" "" "" 1,6 0x0006 KEYCODE_ENDCALL
0x07 0x003e Клавиатура F5 0x003f KEY_F5 3.0 0x0087 КОД КЛЮЧА_F5
0x07 0x003f Клавиатура F6 0x0040 KEY_F6 3.0 0x0088 КОД КЛЮЧА_F6
0x07 0x0040 Клавиатура F7 0x0041 KEY_F7 3.0 0x0089 КОД КЛЮЧА_F7
0x07 0x0041 Клавиатура F8 0x0042 KEY_F8 3.0 0x008a КОД КЛЮЧА_F8
0x07 0x0042 Клавиатура F9 0x0043 KEY_F9 3.0 0x008b КОД КЛЮЧА_F9
0x07 0x0043 Клавиатура F10 0x0044 KEY_F10 3.0 0x008c КОД КЛЮЧА_F10
"" "" "" "" 2.3 0x0052 KEYCODE_MENU
0x07 0x0044 Клавиатура F11 0x0057 KEY_F11 3.0 0x008d КОД КЛЮЧА_F11
0x07 0x0045 Клавиатура F12 0x0058 KEY_F12 3.0 0x008e КОД КЛЮЧА_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 КОД_КЛЮЧА_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 Клавиатура 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 и конец 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 0x009е 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 Блокировка клавиатуры Блокировка прокрутки
0x07 0x0085 Клавиатура Запятая 0x0079 KEY_KPCOMMA 3.0 0x009f KEYCODE_NUMPAD_COMMA
0x07 0x0086 Знак равенства на клавиатуре
0x07 0x0087 Клавиатура Международная1 0x0059 KEY_RO
0x07 0x0088 Клавиатура Международная2 0x005d KEY_KATAKANAHIRAGANA
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 Клавиатура SysReq/Внимание
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_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 Клавиатура А
0x07 0x00bd Клавиатура Б
0x07 0x00be Клавиатура С
0x07 0x00bf Клавиатура D
0x07 0x00c0 Клавиатура Е
0x07 0x00c1 Клавиатура Ф
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 0x00дб Клавиатура Восьмеричная
0x07 0x00dc Десятичная клавиатура
0x07 0x00дд Шестнадцатеричная клавиатура
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 Клавиатура, левый графический интерфейс 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 Правый графический интерфейс клавиатуры 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 0x009е 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 0x00фб 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATOR

Общая страница рабочего стола HID (0x01)

Использование HID Имя использования HID ЛКС Имя кода ключа Linux Версия АКС Название кода ключа 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 Система Обмен дисплея Прим./сек.
0x01 0x00b7 Системный дисплей ЖК-дисплей с автомасштабированием

HID потребительская страница (0x0c)

Использование HID Имя использования HID ЛКС Имя кода ключа Linux Версия АКС Название кода ключа 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 Красная кнопка меню 0x18е KEY_RED 0x00b7 KEYCODE_PROG_RED Добавлено в aosp/1388616.
0x0c 0x006a Зеленая кнопка меню 0x18f KEY_GREEN 0x00b8 KEYCODE_PROG_GREEN Добавлено в aosp/1388616.
0x0c 0x006b Синяя кнопка меню 0x191 КЛЮЧ_СИНИЙ 0x00ba KEYCODE_PROG_BLUE Добавлено в aosp/1388616.
0x0c 0x006c Желтая кнопка меню 0x190 КЛЮЧ_ЖЕЛТЫЙ 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_ПК
0x0c 0x0089 Медиа Выбрать ТВ 0x0179 KEY_TV 3.0 0x00аа KEYCODE_TV
0x0c 0x008a Медиа Выберите WWW 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 Руководство по программе 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 Медиа Выберите компакт-диск 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 МПХ
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 Таблица AL 0x01a7 KEY_SPREADSHEET
0x0c 0x0187 AL Графический редактор 0x01a8 KEY_GRAPHICSEDITOR
0x0c 0x0188 Приложение AL Presentation 0x01a9 KEY_PRESENTATION
0x0c 0x0189 Приложение базы данных AL 0x01aa KEY_DATABASE
0x0c 0x018a Читатель электронной почты AL 0x009b KEY_MAIL 1,6 0x0041 KEYCODE_ENVELOPE
0x0c 0x018b АЛ Читатель новостей 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 Task/Менеджер проекта
0x0c 0x0190 AL Журнал / Журнал / Табель учета рабочего времени
0x0c 0x0191 AL Чековая книжка / Финансы 0x00дБ KEY_FINANCE
0x0c 0x0192 Калькулятор AL 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATOR
0x0c 0x0193 AL A/V захват/воспроизведение
0x0c 0x0194 AL Браузер локального компьютера 0x0090 КЛЮЧ_ФАЙЛ
0x0c 0x0195 AL-LAN/WAN-браузер
0x0c 0x0196 АЛ Интернет-браузер 0x0096 KEY_WWW 1,6 0x0040 KEYCODE_EXPLORER
0x0c 0x0197 AL Удаленная сеть/подключение к интернет-провайдеру
0x0c 0x0198 Сетевая конференция AL
0x0c 0x0199 Сетевой чат AL 0x00d8 KEY_CHAT
0x0c 0x019a AL-телефония/дозвонщик
0x0c 0x019b АЛ вход в систему
0x0c 0x019c АЛ Выход из системы 0x01b1 KEY_LOGOFF
0x0c 0x019d AL вход/выход из системы
0x0c 0x019e Блокировка терминала AL / Заставка 0x0098 KEY_COFFEE 4.0 0x001a KEYCODE_POWER
0x0c 0x019f Панель управления АЛ
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 КЛЮЧЕВЫЕ_ДОКУМЕНТЫ
0x0c 0x01a8 AL Тезаурус
0x0c 0x01a9 АЛ-словарь
0x0c 0x01aa АЛ Рабочий стол
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 АЛ-сигнализации
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 Помощь OEM OEM
0x0c 0x01bf Интернет-сообщество AL
0x0c 0x01c0 Браузер развлекательного контента AL
0x0c 0x01c1 AL Интернет-браузер для покупок
0x0c 0x01c2 Информация о смарт-карте AL / Помощь
0x0c 0x01c3 AL Маркет/Финансовый браузер
0x0c 0x01c4 Обозреватель новостей AL Customized Corp.
0x0c 0x01c5 AL Браузер онлайн-активности
0x0c 0x01c6 AL Research / Поисковый браузер
0x0c 0x01c7 AL Аудиоплеер
0x0c 0x0201 AC Новый 0x00b5 KEY_NEW
0x0c 0x0202 Открытый переменный ток 0x0086 KEY_OPEN
0x0c 0x0203 AC Закрыть 0x00ce KEY_CLOSE
0x0c 0x0204 Выход переменного тока 0x00ae KEY_EXIT
0x0c 0x0205 AC Максимизировать
0x0c 0x0206 AC Минимизировать
0x0c 0x0207 Экономия переменного тока 0x00ea KEY_SAVE
0x0c 0x0208 AC Печать 0x00d2 KEY_PRINT
0x0c 0x0209 Свойства переменного тока 0x0082 KEY_PROPS
0x0c 0x021a AC Отменить 0x0083 KEY_UNDO
0x0c 0x021b Копирование переменного тока 0x0085 KEY_COPY
0x0c 0x021c Выключение переменного тока 0x0089 KEY_CUT
0x0c 0x021d Паста переменного тока 0x0087 KEY_PASTE
0x0c 0x021e AC Выбрать все
0x0c 0x021f AC Найти 0x0088 KEY_FIND
0x0c 0x0220 AC Найти и заменить
0x0c 0x0221 Поиск переменного тока 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 Назад 0x009е KEY_BACK 1,6 0x0004 KEYCODE_BACK
0x0c 0x0225 АК Форвард 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 Предыдущая ссылка
0x0c 0x0229 AC Следующая ссылка
0x0c 0x022a Закладки переменного тока 0x009c KEY_BOOKMARKS 3.0 0x00ae KEYCODE_BOOKMARK
0x0c 0x022b История переменного тока
0x0c 0x022c Подписки переменного тока
0x0c 0x022d Увеличение масштаба переменного тока 0x01a2 KEY_ZOOMIN
0x0c 0x022e Уменьшить масштаб переменного тока 0x01a3 KEY_ZOOMOUT
0x0c 0x022f AC Зум 0x01a4 KEY_ZOOMRESET 2
0x0c 0x0230 Полноэкранный режим переменного тока
0x0c 0x0231 Нормальный вид переменного тока
0x0c 0x0232 Переключить режим просмотра переменного тока
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 Новое окно переменного тока
0x0c 0x023a Плитка переменного тока по горизонтали
0x0c 0x023b Плитка переменного тока вертикально
0x0c 0x023c Формат переменного тока
0x0c 0x023d АС Править
0x0c 0x023e AC Жирный
0x0c 0x023f AC Курсив
0x0c 0x0240 AC подчеркивание
0x0c 0x0241 Перечеркивание переменного тока
0x0c 0x0242 Индекс AC
0x0c 0x0243 Надстрочный индекс AC
0x0c 0x0244 AC все заглавные буквы
0x0c 0x0245 Вращение переменного тока
0x0c 0x0246 Изменение размера переменного тока
0x0c 0x0247 AC флип по горизонтали
0x0c 0x0248 AC флип вертикальный
0x0c 0x0249 Зеркало переменного тока горизонтальное
0x0c 0x024a Зеркало переменного тока вертикальное
0x0c 0x024b Выбор шрифта AC
0x0c 0x024c Цвет шрифта AC
0x0c 0x024d Размер шрифта AC
0x0c 0x024e AC Выровнять по левому краю
0x0c 0x024f AC Центр выравнивания H
0x0c 0x0250 AC оправдывает право
0x0c 0x0251 AC Выравнивание блока H
0x0c 0x0252 AC Justify Top
0x0c 0x0253 AC Justify Центр V
0x0c 0x0254 AC Выровнять по нижнему краю
0x0c 0x0255 AC Выравнивание Блок V
0x0c 0x0256 Уменьшение отступа переменного тока
0x0c 0x0257 Увеличение отступа переменного тока
0x0c 0x0258 Нумерованный список AC
0x0c 0x0259 Нумерация перезапуска переменного тока
0x0c 0x025a Маркированный список AC
0x0c 0x025b AC Продвижение
0x0c 0x025c Понижение уровня переменного тока
0x0c 0x025d переменного тока Да
0x0c 0x025e переменного тока нет
0x0c 0x025f AC Отмена 0x00df KEY_CANCEL
0x0c 0x0260 Каталог переменного тока
0x0c 0x0261 AC Купить / Оформить заказ
0x0c 0x0262 AC Добавить в корзину
0x0c 0x0263 AC Развернуть
0x0c 0x0264 AC Развернуть все
0x0c 0x0265 Коллапс переменного тока
0x0c 0x0266 AC Свернуть все
0x0c 0x0267 Предварительный просмотр печати переменного тока
0x0c 0x0268 Специальная паста переменного тока
0x0c 0x0269 Режим вставки переменного тока
0x0c 0x026a Удалить AC
0x0c 0x026b Блокировка переменного тока
0x0c 0x026c Разблокировка переменного тока
0x0c 0x026d Защита от переменного тока
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 Таблица выбора переменного тока
0x0c 0x0278 AC Выбор объекта
0x0c 0x0279 AC Повтор/Повторение 0x00b6 KEY_REDO
0x0c 0x027a Сортировка переменного тока
0x0c 0x027b AC Сортировка по возрастанию
0x0c 0x027c AC Сортировка по убыванию
0x0c 0x027d Фильтр переменного тока
0x0c 0x027e Настройка часов переменного тока
0x0c 0x027f Часы просмотра переменного тока
0x0c 0x0280 AC Выбор часового пояса
0x0c 0x0281 AC Редактировать часовые пояса
0x0c 0x0282 Установка сигнализации переменного тока
0x0c 0x0283 Сброс тревоги переменного тока
0x0c 0x0284 Сигнал повтора сигнала переменного тока
0x0c 0x0285 Сигнализация сброса переменного тока
0x0c 0x0286 Синхронизация переменного тока
0x0c 0x0287 Передача/получение переменного тока
0x0c 0x0288 Переменный ток отправить
0x0c 0x0289 Ответ AC 0x00e8 KEY_REPLY
0x0c 0x028a AC Ответить всем
0x0c 0x028b Переслать сообщение переменного тока 0x00e9 KEY_FORWARDMAIL
0x0c 0x028c Передача переменного тока 0x00e7 KEY_SEND
0x0c 0x028d AC Прикрепите файл
0x0c 0x028e Загрузка переменного тока
0x0c 0x028f Загрузка AC (Сохранить объект как)
0x0c 0x0290 Границы установки AC
0x0c 0x0291 Вставить строку переменного тока
0x0c 0x0292 Колонка вставки переменного тока
0x0c 0x0293 Вставить файл переменного тока
0x0c 0x0294 Изображение вставки переменного тока
0x0c 0x0295 Вставить объект переменного тока
0x0c 0x0296 Символ вставки переменного тока
0x0c 0x0297 AC Сохранить и закрыть
0x0c 0x0298 Переименование переменного тока
0x0c 0x0299 Слияние AC
0x0c 0x029a Сплит переменного тока
0x0c 0x029b Распределение переменного тока горизонтально
0x0c 0x029c Распределение переменного тока вертикально

Дополнительные сопоставления без HID

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

ЛКС Имя кода ключа Linux Версия АКС Название кода ключа Android Примечания
0x01d0 KEY_FN 3.0 0x0077 KEYCODE_FUNCTION
0x01d1 KEY_FN_ESC 3.0 0x006f КОД_КЛЮЧА_ESCAPE 3
0x01d2 KEY_FN_F1 3.0 0x0083 КОД КЛЮЧА_F1 3
0x01d3 KEY_FN_F2 3.0 0x0084 КОД КЛЮЧА_F2 3
0x01d4 KEY_FN_F3 3.0 0x0085 КОД КЛЮЧА_F3 3
0x01d5 KEY_FN_F4 3.0 0x0086 КОД КЛЮЧА_F4 3
0x01d6 KEY_FN_F5 3.0 0x0087 КОД КЛЮЧА_F5 3
0x01d7 KEY_FN_F6 3.0 0x0088 КОД КЛЮЧА_F6 3
0x01d8 KEY_FN_F7 3.0 0x0089 КОД КЛЮЧА_F7 3
0x01d9 KEY_FN_F8 3.0 0x008a КОД КЛЮЧА_F8 3
0x01da KEY_FN_F9 3.0 0x008b КОД КЛЮЧА_F9 3
0x01дб KEY_FN_F10 3.0 0x008c КОД КЛЮЧА_F10 3
0x01dc KEY_FN_F11 3.0 0x008d КОД КЛЮЧА_F11 3
0x01дд KEY_FN_F12 3.0 0x008e КОД КЛЮЧА_F12 3
0x01de KEY_FN_1 3.0 0x0008 КОД КЛЮЧА_1 3
0x01df KEY_FN_2 3.0 0x0009 КОД_КЛЮЧА_2 3
0x01e0 KEY_FN_D 3.0 0x0020 КОД КЛЮЧА_D 3
0x01e1 KEY_FN_E 3.0 0x0021 КОД КЛЮЧА_E 3
0x01e2 KEY_FN_F 3.0 0x0022 КОД КЛЮЧА_F 3
0x01e3 KEY_FN_S 3.0 0x002f КОД КЛЮЧА_S 3
0x01e4 KEY_FN_B 3.0 0x001e КОД КЛЮЧА_B 3

Устаревшие неподдерживаемые ключи

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

ЛКС Имя кода ключа Linux Версия АКС Название кода ключа Android Примечания
0x00дБ KEY_EMAIL 1,6 0x004d КОД КЛЮЧА_AT 4
"" "" 4.0 4
0x00e3 KEY_STAR 1,6 0x0011 КОД_СТАР 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 КЛЮЧ_0_5 1,6 4
0x00eb КЛЮЧ_2_5 1,6 4

Примечания

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

    На клавиатуре американского английского языка (QWERTY) верхняя левая буквенная клавиша обозначается Q. На французской клавиатуре (AZERTY) клавиша в том же положении обозначается буквой A. Несмотря на метку, на обеих клавиатурах верхняя левая буквенная клавиша упоминается с использованием 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 v1.12
  2. Ядро Linux 2.6.39: include/linux/input.h, driver/hid/hid-input.c
  3. Android ICS: qwerty.kl, Generic.kl, KeyEvent.java