Dispositivos de teclado

Android admite una variedad de dispositivos de teclado, incluidos los teclados con funciones especiales (controles de volumen y encendido), teclados QWERTY compactos incorporados y teclados externos con todas las funciones de estilo PC.

En este documento, solo se describen los teclados físicos. Consulta el SDK de Android para obtener información sobre los teclados en pantalla (editores de métodos de entrada).

Clasificación del teclado

Un dispositivo de entrada se clasifica como un teclado si se cumple alguna de las siguientes condiciones:

  • El dispositivo de entrada informa la presencia de cualquier código de tecla de Linux que se use en los teclados, incluidos 0 a 0xff o KEY_OK a KEY_MAX.

  • El dispositivo de entrada informa la presencia de cualquier código de tecla de Linux que se use en joysticks y gamepads, incluidos BTN_0 a BTN_9, BTN_TRIGGER a BTN_DEAD o BTN_A a BTN_THUMBR.

Actualmente, los joysticks se clasifican como teclados porque los eventos EV_KEY informan los botones del joystick y del control de juegos de la misma manera que se informan las teclas del teclado. Por lo tanto, los joysticks y los gamepads también usan archivos de asignación de teclas para la configuración.

Una vez que se clasifica un dispositivo de entrada como teclado, el sistema carga el archivo de configuración del dispositivo de entrada y el diseño del teclado.

Luego, el sistema intenta determinar características adicionales del dispositivo.

  • Si el dispositivo de entrada tiene alguna tecla asignada a KEYCODE_Q, se considera que tiene un teclado alfabético (en lugar de numérico). La función del teclado alfabético se informa en el objeto Configuration del recurso como KEYBOARD_QWERTY.

  • Si el dispositivo de entrada tiene teclas asignadas a KEYCODE_DPAD_UP, KEYCODE_DPAD_DOWN, KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHT y KEYCODE_DPAD_CENTER (todas deben estar presentes), se considera que el dispositivo tiene un teclado direccional. La función del teclado direccional se informa en el objeto Configuration del recurso como NAVIGATION_DPAD.

  • Si el dispositivo de entrada tiene alguna tecla asignada a KEYCODE_BUTTON_A o a otras teclas relacionadas con el gamepad, se considera que el dispositivo tiene un gamepad.

Requisitos del controlador de teclado

  1. Los controladores de teclado solo deben registrar códigos de teclas para las teclas que realmente admiten. El registro de códigos de teclas en exceso puede confundir el algoritmo de clasificación del dispositivo o hacer que el sistema detecte de forma incorrecta las capacidades compatibles del teclado del dispositivo.

  2. Los controladores de teclado deben usar EV_KEY para informar las pulsaciones de teclas, con un valor de 0 para indicar que se suelta una tecla, un valor de 1 para indicar que se presiona una tecla y un valor mayor o igual que 2 para indicar que la tecla se repite automáticamente.

  3. Android realiza su propia repetición del teclado. La función de repetición automática debe estar inhabilitada en el controlador.

  4. De manera opcional, los controladores de teclado pueden indicar el uso de HID o el código de análisis de bajo nivel enviando EV_MSC con MSC_SCANCODE y un valor que indique el uso o el código de análisis cuando se presiona la tecla. Actualmente, Android no usa esta información.

  5. Los controladores de teclado deben admitir la configuración de estados de LED cuando se escribe EV_LED en el dispositivo. El controlador hid-input lo controla automáticamente. En el momento de escribir este artículo, Android usa LED_CAPSLOCK, LED_SCROLLLOCK y LED_NUMLOCK. Estos LED solo deben admitirse cuando el teclado realmente tiene las luces indicadoras asociadas.

  6. Los controladores de teclado para teclados incorporados (por ejemplo, con una matriz GPIO) deben asegurarse de enviar eventos EV_KEY con un valor de 0 para las teclas que aún están presionadas cuando el dispositivo entra en modo de suspensión. De lo contrario, las teclas podrían quedar atascadas y repetirse automáticamente para siempre.

Operación del teclado

A continuación, se incluye un breve resumen del funcionamiento del teclado en Android.

  1. EventHub lee eventos sin procesar del controlador evdev y asigna los códigos de teclas de Linux (a veces denominados códigos de escaneo) a los códigos de teclas de Android con el mapa de diseño de teclas del teclado.

  2. InputReader consume los eventos sin procesar y actualiza el estado de la meta clave. Por ejemplo, si se presiona o suelta la tecla de mayúsculas izquierda, el lector establecerá o restablecerá los bits META_SHIFT_LEFT_ON y META_SHIFT_ON según corresponda.

  3. InputReader notifica a InputDispatcher sobre el evento de tecla.

  4. InputDispatcher le pregunta a WindowManagerPolicy qué hacer con el evento de tecla llamando a WindowManagerPolicy.interceptKeyBeforeQueueing. Este método forma parte de una ruta crítica que es responsable de activar el dispositivo cuando se presionan ciertas teclas. El EventHub mantiene de manera efectiva un bloqueo de activación a lo largo de esta ruta crítica para garantizar que se ejecute hasta completarse.

  5. Si se está usando un InputFilter, InputDispatcher le da la oportunidad de consumir o transformar la clave. Se puede usar InputFilter para implementar políticas de accesibilidad de bajo nivel en todo el sistema.

  6. InputDispatcher pone en cola la clave para su procesamiento en el subproceso de envío.

  7. Cuando InputDispatcher quita la clave de la cola, le da a WindowManagerPolicy una segunda oportunidad para interceptar el evento de tecla llamando a WindowManagerPolicy.interceptKeyBeforeDispatching. Este método controla los accesos directos del sistema y otras funciones.

  8. Luego, InputDispatcher identifica el objetivo del evento clave (la ventana enfocada) y espera a que esté listo. Luego, InputDispatcher entrega el evento de tecla a la aplicación.

  9. Dentro de la aplicación, el evento de tecla se propaga por la jerarquía de vistas hasta la vista enfocada para el envío de teclas previas al IME.

  10. Si el evento de tecla no se controla en el envío previo al IME y se está usando un IME, el evento de tecla se entrega al IME.

  11. Si el IME no consumió el evento de tecla, este se propaga por la jerarquía de vistas hasta la vista enfocada para el envío de teclas estándar.

  12. La aplicación informa a InputDispatcher si se consumió el evento de tecla. Si no se consumió el evento, InputDispatcher llama a WindowManagerPolicy.dispatchUnhandledKey para aplicar el comportamiento de "reemplazo". Según la acción de resguardo, es posible que se reinicie el ciclo de envío de eventos de teclas con un código de tecla diferente. Por ejemplo, si una aplicación no controla KEYCODE_ESCAPE, el sistema puede volver a enviar el evento de tecla como KEYCODE_BACK.

Configuración del teclado

El comportamiento del teclado se determina según el diseño de teclas, el mapa de caracteres clave y la configuración del dispositivo de entrada.

Consulta las siguientes secciones para obtener más detalles sobre los archivos que participan en la configuración del teclado:

Propiedades

Las siguientes propiedades de configuración de dispositivos de entrada se usan para teclados.

keyboard.layout

Definición: keyboard.layout = <name>

Especifica el nombre del archivo de diseño de teclas asociado con el dispositivo de entrada, sin la extensión .kl. Si no se encuentra este archivo, el sistema de entrada usará el diseño de teclas predeterminado.

Los espacios en el nombre se convierten en guiones bajos durante la búsqueda.

Consulta la documentación del archivo de diseño de claves para obtener más detalles.

keyboard.characterMap

Definición: keyboard.characterMap = <name>

Especifica el nombre del archivo de mapa de caracteres de teclas asociado con el dispositivo de entrada, sin la extensión .kcm. Si no se encuentra este archivo, el sistema de entrada usará el mapa de caracteres de teclas predeterminado.

Los espacios en el nombre se convierten en guiones bajos durante la búsqueda.

Consulta la documentación del archivo de mapa de caracteres clave para obtener más detalles.

keyboard.orientationAware

Definición: keyboard.orientationAware = 0 | 1

Especifica si el teclado debe reaccionar a los cambios de orientación de la pantalla.

  • Si el valor es 1, las teclas del teclado direccional se rotan cuando cambia la orientación de la pantalla asociada.

  • Si el valor es 0, el teclado no se ve afectado por los cambios de orientación de la pantalla.

El valor predeterminado es 0.

La detección de orientación se usa para admitir la rotación de las teclas del teclado direccional, como en el Motorola Droid. Por ejemplo, cuando el dispositivo se rota en el sentido de las manecillas del reloj 90 grados desde su orientación natural, KEYCODE_DPAD_UP se vuelve a asignar para producir KEYCODE_DPAD_RIGHT, ya que la tecla "arriba" termina apuntando a "derecha" cuando el dispositivo se sostiene en esa orientación.

keyboard.builtIn

Definición: keyboard.builtIn = 0 | 1

Especifica si el teclado es el integrado (conectado físicamente).

El valor predeterminado es 1 si el nombre del dispositivo termina con -keypad, 0 de lo contrario.

Al teclado integrado siempre se le asigna un ID de dispositivo de 0. A los otros teclados que no son integrados se les asignan IDs de dispositivos únicos distintos de cero.

Usar un ID de 0 para el teclado integrado es importante para mantener la compatibilidad con el campo KeyCharacterMap.BUILT_IN_KEYBOARD, que especifica el ID del teclado integrado y tiene un valor de 0. Este campo dejó de estar disponible en la API, pero es posible que las aplicaciones más antiguas aún lo usen.

Un teclado de funciones especiales (cuyo mapa de caracteres clave especifique un tipo de SPECIAL_FUNCTION) nunca se registrará como el teclado integrado, independientemente de la configuración de esta propiedad. Esto se debe a que, por definición, un teclado con funciones especiales no está diseñado para escribir texto de uso general.

Configuraciones de ejemplo

# 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

Notas de compatibilidad

Antes de Honeycomb, el asignador de entrada del teclado no usaba ninguna propiedad de configuración. Se suponía que todos los teclados estaban conectados físicamente y tenían en cuenta la orientación. El diseño de teclas y el mapa de caracteres de teclas predeterminados se llamaron qwerty en lugar de Generic. El formato del mapa de caracteres clave también era muy diferente, y el framework no admitía teclados externos ni teclados completos al estilo de PC.

Cuando actualices los dispositivos a Honeycomb, asegúrate de crear o actualizar los archivos de configuración y mapa de claves necesarios.

Usos de HID, códigos de teclas de Linux y códigos de teclas de Android

El sistema hace referencia a las claves con varios identificadores diferentes, según la capa de abstracción.

En el caso de los dispositivos HID, cada tecla tiene un uso HID asociado. El controlador hid-input de Linux y los controladores HID específicos del proveedor y del dispositivo relacionados son responsables de analizar los informes HID y asignar los usos de HID a los códigos de teclas de Linux.

A medida que Android lee eventos EV_KEY del kernel de Linux, traduce cada código de tecla de Linux en su código de tecla de Android correspondiente según el archivo de diseño de teclas del dispositivo.

Cuando el evento de tecla se envía a una aplicación, la instancia de android.view.KeyEvent informa el código de tecla de Linux como el valor de getScanCode() y el código de tecla de Android como el valor de getKeyCode(). A los efectos del framework, solo el valor de getKeyCode() es importante.

Ten en cuenta que Android no usa la información de uso de HID ni la pasa a las aplicaciones.

Tablas de códigos

En las siguientes tablas, se muestra cómo se relacionan entre sí los usos de HID, los códigos de teclas de Linux y los códigos de teclas de Android.

La columna LKC especifica el código de tecla de Linux en hexadecimal.

La columna AKC especifica el código de clave de Android en hexadecimal.

La columna Notas hace referencia a las notas que se publican después de la tabla.

La columna Version especifica la primera versión de la plataforma de Android que incluyó esta clave en su mapa de teclas predeterminado. Se muestran varias filas en los casos en que el mapa de teclas predeterminado cambió entre versiones. La versión más antigua que se indica es 1.6.

  • En Gingerbread (2.3) y versiones anteriores, el mapa de teclas predeterminado era qwerty.kl. Este mapa de teclas solo se diseñó para usarse con Android Emulator y no para admitir teclados externos arbitrarios. Sin embargo, algunos OEMs agregaron compatibilidad con teclados Bluetooth a la plataforma y se basaron en qwerty.kl para proporcionar las asignaciones de teclado necesarias. En consecuencia, estas asignaciones anteriores pueden ser de interés para los OEM que compilan periféricos para estos dispositivos en particular. Ten en cuenta que las asignaciones son muy diferentes de las actuales, en particular, con respecto al tratamiento de la clave HOME. Se recomienda que todos los periféricos nuevos se desarrollen de acuerdo con Honeycomb o mapas de teclas más recientes (p. ej., HID estándar).

  • A partir de Honeycomb (3.0), el mapa de teclas predeterminado es Generic.kl. Este mapa de teclas se diseñó para admitir teclados de estilo PC completos. La mayoría de las funciones de los teclados HID estándar deberían funcionar de inmediato.

La asignación de códigos de teclas puede variar según las versiones del kernel de Linux y Android. Cuando se sabe que se produjeron cambios en los mapas de teclas predeterminados de Android, estos se indican en la columna de versión.

Los controladores HID y los mapas de teclas específicos del dispositivo pueden aplicar asignaciones diferentes de las que se indican aquí.

Página del teclado y el teclado numérico HID (0x07)

Uso de HID Nombre de uso de HID LKC Nombre del código de clave de Linux Versión AKC Nombre de código de clave de Android Notas
0x07 0x0001 Error de teclado
0x07 0x0002 Falla en la POST del teclado
0x07 0x0003 Error de teclado no definido
0x07 0x0004 Teclado a y A 0x001e KEY_A 1.6 0x001d KEYCODE_A 1
0x07 0x0005 Teclado b y B 0x0030 KEY_B 1.6 0x001e KEYCODE_B 1
0x07 0x0006 Teclado c y C 0x002e KEY_C 1.6 0x001f KEYCODE_C 1
0x07 0x0007 Teclado d y D 0x0020 KEY_D 1.6 0x0020 KEYCODE_D 1
0x07 0x0008 Teclado e y E 0x0012 KEY_E 1.6 0x0021 KEYCODE_E 1
0x07 0x0009 Teclado f y F 0x0021 KEY_F 1.6 0x0022 KEYCODE_F 1
0x07 0x000a Teclado g y G 0x0022 KEY_G 1.6 0x0023 KEYCODE_G 1
0x07 0x000b Teclado h y H 0x0023 KEY_H 1.6 0x0024 KEYCODE_H 1
0x07 0x000c Teclado i y I 0x0017 KEY_I 1.6 0x0025 KEYCODE_I 1
0x07 0x000d J y J del teclado 0x0024 KEY_J 1.6 0x0026 KEYCODE_J 1
0x07 0x000e Teclas K y K del teclado 0x0025 KEY_K 1.6 0x0027 KEYCODE_K 1
0x07 0x000f Teclado l y L 0x0026 KEY_L 1.6 0x0028 KEYCODE_L 1
0x07 0x0010 Teclado m y M 0x0032 KEY_M 1.6 0x0029 KEYCODE_M 1
0x07 0x0011 Teclado n y N 0x0031 KEY_N 1.6 0x002a KEYCODE_N 1
0x07 0x0012 Teclado o y O 0x0018 KEY_O 1.6 0x002b KEYCODE_O 1
0x07 0x0013 Teclado p y P 0x0019 KEY_P 1.6 0x002c KEYCODE_P 1
0x07 0x0014 Teclado Q y q 0x0010 KEY_Q 1.6 0x002d KEYCODE_Q 1
0x07 0x0015 Teclado r y R 0x0013 KEY_R 1.6 0x002e KEYCODE_R 1
0x07 0x0016 Teclado S y S 0x001f KEY_S 1.6 0x002f KEYCODE_S 1
0x07 0x0017 Teclado t y T 0x0014 KEY_T 1.6 0x0030 KEYCODE_T 1
0x07 0x0018 Teclado u y U 0x0016 KEY_U 1.6 0x0031 KEYCODE_U 1
0x07 0x0019 Teclado v y V 0x002f KEY_V 1.6 0x0032 KEYCODE_V 1
0x07 0x001a Teclado w y W 0x0011 KEY_W 1.6 0x0033 KEYCODE_W 1
0x07 0x001b X y X del teclado 0x002d KEY_X 1.6 0x0034 KEYCODE_X 1
0x07 0x001c Teclado Y y Y 0x0015 KEY_Y 1.6 0x0035 KEYCODE_Y 1
0x07 0x001d Teclado z y Z 0x002c KEY_Z 1.6 0x0036 KEYCODE_Z 1
0x07 0x001e Teclado 1 y ! 0x0002 KEY_1 1.6 0x0008 KEYCODE_1 1
0x07 0x001f Teclado 2 y @ 0x0003 KEY_2 1.6 0x0009 KEYCODE_2 1
0x07 0x0020 Teclado 3 y # 0x0004 KEY_3 1.6 0x000a KEYCODE_3 1
0x07 0x0021 Teclado 4 y $ 0x0005 KEY_4 1.6 0x000b KEYCODE_4 1
0x07 0x0022 Teclado 5 y % 0x0006 KEY_5 1.6 0x000c KEYCODE_5 1
0x07 0x0023 Teclado 6 y ^ 0x0007 KEY_6 1.6 0x000d KEYCODE_6 1
0x07 0x0024 Teclado 7 y & 0x0008 KEY_7 1.6 0x000e KEYCODE_7 1
0x07 0x0025 Teclado 8 y * 0x0009 KEY_8 1.6 0x000f KEYCODE_8 1
0x07 0x0026 Teclado 9 y ( 0x000a KEY_9 1.6 0x0010 KEYCODE_9 1
0x07 0x0027 Teclado 0 y ) 0x000b KEY_0 1.6 0x0007 KEYCODE_0 1
0x07 0x0028 Tecla Intro (ENTER) 0x001c KEY_ENTER 1.6 0x0042 KEYCODE_ENTER 1
0x07 0x0029 Tecla ESCAPE del teclado 0x0001 KEY_ESC 3.0 0x006f KEYCODE_ESCAPE
"" "" "" "" 2.3 0x0004 KEYCODE_BACK
0x07 0x002a Tecla DELETE (retroceso) del teclado 0x000e KEY_BACKSPACE 1.6 0x0043 KEYCODE_DEL
0x07 0x002b Tecla Tab del teclado 0x000f KEY_TAB 1.6 0x003d KEYCODE_TAB
0x07 0x002c Barra espaciadora del teclado 0x0039 KEY_SPACE 1.6 0x003e KEYCODE_SPACE
0x07 0x002d Teclado: y _ 0x000c KEY_MINUS 1.6 0x0045 KEYCODE_MINUS 1
0x07 0x002e Teclado = y + 0x000d KEY_EQUAL 1.6 0x0046 KEYCODE_EQUALS 1
0x07 0x002f Teclado [ y { 0x001a KEY_LEFTBRACE 1.6 0x0047 KEYCODE_LEFT_BRACKET 1
0x07 0x0030 Teclado ] y } 0x001b KEY_RIGHTBRACE 1.6 0x0048 KEYCODE_RIGHT_BRACKET 1
0x07 0x0031 Teclado \ y | 0x002b KEY_BACKSLASH 1.6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0032 Teclado con # y ~ que no son de EE.UU. 0x002b KEY_BACKSLASH 1.6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0033 Teclado ; y : 0x0027 KEY_SEMICOLON 1.6 0x004a KEYCODE_SEMICOLON 1
0x07 0x0034 Teclas " y " 0x0028 KEY_APOSTROPHE 1.6 0x004b KEYCODE_APOSTROPHE 1
0x07 0x0035 Acento grave y virgulilla del teclado 0x0029 KEY_GRAVE 3.0 0x0044 KEYCODE_GRAVE 1
0x07 0x0036 Teclado, , y < 0x0033 KEY_COMMA 1.6 0x0037 KEYCODE_COMMA 1
0x07 0x0037 Teclado . y > 0x0034 KEY_DOT 1.6 0x0038 KEYCODE_PERIOD 1
0x07 0x0038 Teclado / y ? 0x0035 KEY_SLASH 1.6 0x004c KEYCODE_SLASH 1
0x07 0x0039 Bloq Mayús del teclado 0x003a KEY_CAPSLOCK 3.0 0x0073 KEYCODE_CAPS_LOCK
0x07 0x003a Tecla F1 del teclado 0x003b KEY_F1 3.0 0x0083 KEYCODE_F1
"" "" "" "" 1.6 0x0052 KEYCODE_MENU
0x07 0x003b Tecla F2 del teclado 0x003c KEY_F2 3.0 0x0084 KEYCODE_F2
"" "" "" "" 1.6 0x0002 KEYCODE_SOFT_RIGHT
0x07 0x003c Teclado F3 0x003d KEY_F3 3.0 0x0085 KEYCODE_F3
"" "" "" "" 1.6 0x0005 KEYCODE_CALL
0x07 0x003d Teclado F4 0x003e KEY_F4 3.0 0x0086 KEYCODE_F4
"" "" "" "" 1.6 0x0006 KEYCODE_ENDCALL
0x07 0x003e Tecla F5 del teclado 0x003f KEY_F5 3.0 0x0087 KEYCODE_F5
0x07 0x003f Tecla F6 del teclado 0x0040 KEY_F6 3.0 0x0088 KEYCODE_F6
0x07 0x0040 Teclado F7 0x0041 KEY_F7 3.0 0x0089 KEYCODE_F7
0x07 0x0041 Teclado F8 0x0042 KEY_F8 3.0 0x008a KEYCODE_F8
0x07 0x0042 Tecla F9 del teclado 0x0043 KEY_F9 3.0 0x008b KEYCODE_F9
0x07 0x0043 Tecla F10 del teclado 0x0044 KEY_F10 3.0 0x008c KEYCODE_F10
"" "" "" "" 2.3 0x0052 KEYCODE_MENU
0x07 0x0044 Tecla F11 del teclado 0x0057 KEY_F11 3.0 0x008d KEYCODE_F11
0x07 0x0045 Teclado F12 0x0058 KEY_F12 3.0 0x008e KEYCODE_F12
0x07 0x0046 Imprimir pantalla del teclado 0x0063 KEY_SYSRQ 3.0 0x0078 KEYCODE_SYSRQ
0x07 0x0047 Bloqueo de desplazamiento del teclado 0x0046 KEY_SCROLLLOCK 3.0 0x0074 KEYCODE_SCROLL_LOCK
0x07 0x0048 Pausa del teclado 0x0077 KEY_PAUSE 3.0 0x0079 KEYCODE_BREAK
0x07 0x0049 Inserción del teclado 0x006e KEY_INSERT 3.0 0x007c KEYCODE_INSERT
0x07 0x004a Tecla de inicio del teclado 0x0066 KEY_HOME 3.0 0x007a KEYCODE_MOVE_HOME
"" "" "" "" 1.6 0x0003 KEYCODE_HOME
0x07 0x004b Tecla Page Up del teclado 0x0068 KEY_PAGEUP 3.0 0x005c KEYCODE_PAGE_UP
0x07 0x004c Tecla Borrar hacia adelante 0x006f KEY_DELETE 3.0 0x0070 KEYCODE_FORWARD_DEL
0x07 0x004d Tecla de fin del teclado 0x006b KEY_END 3.0 0x007b KEYCODE_MOVE_END
"" "" "" "" 1.6 0x0006 KEYCODE_ENDCALL
0x07 0x004e Tecla AvPág del teclado 0x006d KEY_PAGEDOWN 3.0 0x005d KEYCODE_PAGE_DOWN
0x07 0x004f Flecha hacia la derecha del teclado 0x006a KEY_RIGHT 1.6 0x0016 KEYCODE_DPAD_RIGHT
0x07 0x0050 Flecha hacia la izquierda del teclado 0x0069 KEY_LEFT 1.6 0x0015 KEYCODE_DPAD_LEFT
0x07 0x0051 Flecha hacia abajo del teclado 0x006c KEY_DOWN 1.6 0x0014 KEYCODE_DPAD_DOWN
0x07 0x0052 Flecha hacia arriba del teclado 0x0067 KEY_UP 1.6 0x0013 KEYCODE_DPAD_UP
0x07 0x0053 Bloqueo numérico y Borrar del teclado 0x0045 KEY_NUMLOCK 3.0 0x008f KEYCODE_NUM_LOCK
0x07 0x0054 Teclado / 0x0062 KEY_KPSLASH 3.0 0x009a KEYCODE_NUMPAD_DIVIDE
0x07 0x0055 Teclado * 0x0037 KEY_KPASTERISK 3.0 0x009b KEYCODE_NUMPAD_MULTIPLY
0x07 0x0056 Teclado: 0x004a KEY_KPMINUS 3.0 0x009c KEYCODE_NUMPAD_SUBTRACT
0x07 0x0057 Teclado + 0x004e KEY_KPPLUS 3.0 0x009d KEYCODE_NUMPAD_ADD
0x07 0x0058 Tecla ENTER del teclado 0x0060 KEY_KPENTER 3.0 0x00a0 KEYCODE_NUMPAD_ENTER
0x07 0x0059 Teclado 1 y Fin 0x004f KEY_KP1 3.0 0x0091 KEYCODE_NUMPAD_1
0x07 0x005a Teclado 2 y flecha hacia abajo 0x0050 KEY_KP2 3.0 0x0092 KEYCODE_NUMPAD_2
0x07 0x005b Teclado 3 y PageDn 0x0051 KEY_KP3 3.0 0x0093 KEYCODE_NUMPAD_3
0x07 0x005c Teclado 4 y flecha hacia la izquierda 0x004b KEY_KP4 3.0 0x0094 KEYCODE_NUMPAD_4
0x07 0x005d Teclado 5 0x004c KEY_KP5 3.0 0x0095 KEYCODE_NUMPAD_5
0x07 0x005e Teclado numérico 6 y flecha hacia la derecha 0x004d KEY_KP6 3.0 0x0096 KEYCODE_NUMPAD_6
0x07 0x005f Teclado 7 y Home 0x0047 KEY_KP7 3.0 0x0097 KEYCODE_NUMPAD_7
0x07 0x0060 Teclado 8 y flecha hacia arriba 0x0048 KEY_KP8 3.0 0x0098 KEYCODE_NUMPAD_8
0x07 0x0061 Teclado 9 y Página arriba 0x0049 KEY_KP9 3.0 0x0099 KEYCODE_NUMPAD_9
0x07 0x0062 Teclado 0 y Insert 0x0052 KEY_KP0 3.0 0x0090 KEYCODE_NUMPAD_0
0x07 0x0063 Teclado . y Borrar 0x0053 KEY_KPDOT 3.0 0x009e KEYCODE_NUMPAD_DOT
0x07 0x0064 Teclado no estadounidense \ y | 0x0056 KEY_102ND 4.0 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0065 Aplicación de teclado 0x007f KEY_COMPOSE 3.0 0x0052 KEYCODE_MENU
"" "" "" "" 1.6 0x0054 KEYCODE_SEARCH
0x07 0x0066 Teclado de encendido 0x0074 KEY_POWER 1.6 0x001a KEYCODE_POWER
0x07 0x0067 Teclado = 0x0075 KEY_KPEQUAL 3.0 0x00a1 KEYCODE_NUMPAD_EQUALS
0x07 0x0068 Teclado F13 0x00b7 KEY_F13
0x07 0x0069 Teclado F14 0x00b8 KEY_F14
0x07 0x006a Teclado F15 0x00b9 KEY_F15
0x07 0x006b Teclado F16 0x00ba KEY_F16
0x07 0x006c Teclado F17 0x00bb KEY_F17
0x07 0x006d Teclado F18 0x00bc KEY_F18
0x07 0x006e Teclado F19 0x00bd KEY_F19
0x07 0x006f Teclado F20 0x00be KEY_F20
0x07 0x0070 Teclado F21 0x00bf KEY_F21
0x07 0x0071 Teclado F22 0x00c0 KEY_F22
0x07 0x0072 Teclado F23 0x00c1 KEY_F23
0x07 0x0073 Teclado F24 0x00c2 KEY_F24
0x07 0x0074 Ejecutar con el teclado 0x0086 KEY_OPEN
0x07 0x0075 Ayuda del teclado 0x008a KEY_HELP
0x07 0x0076 Menú del teclado 0x0082 KEY_PROPS
0x07 0x0077 Selección del teclado 0x0084 KEY_FRONT
0x07 0x0078 Tope del teclado 0x0080 KEY_STOP 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x0079 Teclado de nuevo 0x0081 KEY_AGAIN
0x07 0x007a Deshacer del teclado 0x0083 KEY_UNDO
0x07 0x007b Corte del teclado 0x0089 KEY_CUT
0x07 0x007c Copiar con el teclado 0x0085 KEY_COPY
0x07 0x007d Pegar con el teclado 0x0087 KEY_PASTE
0x07 0x007e Búsqueda con el teclado 0x0088 KEY_FIND
0x07 0x007f Silenciar teclado 0x0071 KEY_MUTE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x07 0x0080 Subir volumen del teclado 0x0073 KEY_VOLUMEUP 1.6 0x0018 KEYCODE_VOLUME_UP
0x07 0x0081 Bajar volumen del teclado 0x0072 KEY_VOLUMEDOWN 1.6 0x0019 KEYCODE_VOLUME_DOWN
0x07 0x0082 Bloqueo de mayúsculas del teclado
0x07 0x0083 Bloqueo numérico del teclado
0x07 0x0084 Bloqueo de desplazamiento del bloqueo del teclado
0x07 0x0085 Coma del teclado 0x0079 KEY_KPCOMMA 3.0 0x009f KEYCODE_NUMPAD_COMMA
0x07 0x0086 Signo igual del teclado
0x07 0x0087 Teclado internacional1 0x0059 KEY_RO
0x07 0x0088 Teclado internacional2 0x005d KEY_KATAKANAHIRAGANA
0x07 0x0089 Teclado internacional3 0x007c KEY_YEN
0x07 0x008a Teclado internacional4 0x005c KEY_HENKAN
0x07 0x008b Teclado internacional5 0x005e KEY_MUHENKAN
0x07 0x008c Teclado internacional 6 0x005f KEY_KPJPCOMMA
0x07 0x008d Teclado internacional7
0x07 0x008e Teclado internacional8
0x07 0x008f Teclado internacional 9
0x07 0x0090 Teclado LANG1 0x007a KEY_HANGEUL
0x07 0x0091 LANG2 del teclado 0x007b KEY_HANJA
0x07 0x0092 Teclado LANG3 0x005a KEY_KATAKANA
0x07 0x0093 Teclado LANG4 0x005b KEY_HIRAGANA
0x07 0x0094 Teclado LANG5 0x0055 KEY_ZENKAKUHANKAKU
0x07 0x0095 Teclado LANG6
0x07 0x0096 Teclado LANG7
0x07 0x0097 Teclado LANG8
0x07 0x0098 Teclado LANG9
0x07 0x0099 Borrado alternativo del teclado
0x07 0x009a SysReq/atención del teclado
0x07 0x009b Cancelación del teclado
0x07 0x009c Teclado claro
0x07 0x009d Prioridad del teclado
0x07 0x009e Intro del teclado
0x07 0x009f Separador de teclado
0x07 0x00a0 Teclado fuera
0x07 0x00a1 Oper del teclado
0x07 0x00a2 Teclado Borrar/Otra vez
0x07 0x00a3 Teclado CrSel/Props
0x07 0x00a4 ExSel del teclado
0x07 0x00b0 Teclado 00
0x07 0x00b1 Teclado 000
0x07 0x00b2 Separador de miles
0x07 0x00b3 Separador decimal
0x07 0x00b4 Unidad de moneda
0x07 0x00b5 Subunidad de moneda
0x07 0x00b6 Teclado ( 0x00b3 KEY_KPLEFTPAREN 3.0 0x00a2 KEYCODE_NUMPAD_LEFT_PAREN
0x07 0x00b7 Teclado ) 0x00b4 KEY_KPRIGHTPAREN 3.0 0x00a3 KEYCODE_NUMPAD_RIGHT_PAREN
0x07 0x00b8 Teclado {
0x07 0x00b9 Teclado }
0x07 0x00ba Tecla Tab del teclado
0x07 0x00bb Tecla de retroceso del teclado
0x07 0x00bc Teclado A
0x07 0x00bd Teclado B
0x07 0x00be Teclado C
0x07 0x00bf Teclado D
0x07 0x00c0 Teclado E
0x07 0x00c1 Teclado F
0x07 0x00c2 XOR del teclado
0x07 0x00c3 Teclado ^
0x07 0x00c4 Porcentaje de teclado
0x07 0x00c5 Teclado <
0x07 0x00c6 Teclado >
0x07 0x00c7 Teclado y
0x07 0x00c8 Teclado
0x07 0x00c9 Teclado |
0x07 0x00ca Teclado ||
0x07 0x00cb Teclado :
0x07 0x00cc Teclado #
0x07 0x00cd Espacio del teclado
0x07 0x00ce Teclado @
0x07 0x00cf Teclado !
0x07 0x00d0 Almacén de memoria del teclado
0x07 0x00d1 Recuperación de la memoria del teclado
0x07 0x00d2 Borrado de la memoria del teclado
0x07 0x00d3 Adición de memoria del teclado
0x07 0x00d4 Resta de memoria del teclado
0x07 0x00d5 Multiplicación de memoria del teclado
0x07 0x00d6 División de memoria del teclado
0x07 0x00d7 Teclado +/-
0x07 0x00d8 Teclado claro
0x07 0x00d9 Borrado de entrada del teclado
0x07 0x00da Binario del teclado
0x07 0x00db Teclado octal
0x07 0x00dc Decimal del teclado
0x07 0x00dd Teclado hexadecimal
0x07 0x00e0 Control izquierdo del teclado 0x001d KEY_LEFTCTRL 3.0 0x0071 KEYCODE_CTRL_LEFT
0x07 0x00e1 Tecla Mayúsculas izquierda del teclado 0x002a KEY_LEFTSHIFT 1.6 0x003b KEYCODE_SHIFT_LEFT
0x07 0x00e2 Tecla Alt izquierda del teclado 0x0038 KEY_LEFTALT 1.6 0x0039 KEYCODE_ALT_LEFT
0x07 0x00e3 GUI del teclado izquierdo 0x007d KEY_LEFTMETA 3.0 0x0075 KEYCODE_META_LEFT
0x07 0x00e4 Control derecho del teclado 0x0061 KEY_RIGHTCTRL 3.0 0x0072 KEYCODE_CTRL_RIGHT
0x07 0x00e5 Tecla Mayúsculas derecha del teclado 0x0036 KEY_RIGHTSHIFT 1.6 0x003c KEYCODE_SHIFT_RIGHT
0x07 0x00e6 Tecla Alt derecha del teclado 0x0064 KEY_RIGHTALT 1.6 0x003a KEYCODE_ALT_RIGHT
0x07 0x00e7 GUI del lado derecho del teclado 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

Página de escritorio genérica HID (0x01)

Uso de HID Nombre de uso de HID LKC Nombre del código de clave de Linux Versión AKC Nombre de código de clave de Android Notas
0x01 0x0081 Apagado del sistema 0x0074 KEY_POWER 1.6 0x001a KEYCODE_POWER
0x01 0x0082 Suspensión del sistema 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x01 0x0083 Activación del sistema 0x008f KEY_WAKEUP 4.0 0x001a KEYCODE_POWER
0x01 0x0084 Menú contextual del sistema
0x01 0x0085 Menú principal del sistema
0x01 0x0086 Menú de la app del sistema
0x01 0x0087 Ayuda del menú del sistema
0x01 0x0088 Salida del menú del sistema
0x01 0x0089 Selección del menú del sistema
0x01 0x008a Menú del sistema a la derecha
0x01 0x008b Menú del sistema (izquierda)
0x01 0x008c Menú del sistema hacia arriba
0x01 0x008d Menú del sistema inactivo
0x01 0x008e Reinicio en frío del sistema
0x01 0x008f Reinicio en caliente del sistema
0x01 0x00a0 Sistema de la estación de carga
0x01 0x00a1 Desconexión del sistema
0x01 0x00a2 Configuración del sistema
0x01 0x00a3 Pausa del sistema
0x01 0x00a4 Pausa del depurador del sistema
0x01 0x00a5 Pausa de la aplicación
0x01 0x00a6 Pausa del depurador de aplicaciones
0x01 0x00a7 Silenciar bocinas del sistema
0x01 0x00a8 Hibernación del sistema
0x01 0x00b0 Invertir la pantalla del sistema
0x01 0x00b1 Pantalla del sistema interna
0x01 0x00b2 Pantalla del sistema externa
0x01 0x00b3 Pantalla del sistema: Ambos
0x01 0x00b4 Pantalla del sistema doble
0x01 0x00b5 Botón de activación para cambiar la pantalla del sistema entre interior y exterior
0x01 0x00b6 Intercambio de pantalla del sistema primario/secundario
0x01 0x00b7 Escalamiento automático de la pantalla LCD del sistema

Página de consumidor de HID (0x0c)

Uso de HID Nombre de uso de HID LKC Nombre del código de clave de Linux Versión AKC Nombre de código de clave de Android Notas
0x0c 0x0030 Energía
0x0c 0x0031 Restablecer
0x0c 0x0032 Sueño
0x0c 0x0033 Dormir después de
0x0c 0x0034 Modo de suspensión 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x0c 0x0040 Menú 0x008b KEY_MENU 1.6 0x0052 KEYCODE_MENU
0x0c 0x0041 Selección del menú
0x0c 0x0042 Menú arriba
0x0c 0x0043 Menú hacia abajo
0x0c 0x0044 Menú de la izquierda
0x0c 0x0045 Menú derecho 0x0181 KEY_RIGHT
0x0c 0x0046 Escape del menú
0x0c 0x0047 Aumento del valor del menú
0x0c 0x0048 Disminución del valor del menú
0x0c 0x0067 Activar Pantalla en pantalla 0x00ab KEYCODE_WINDOW Se agregó en aosp/1365553
0x0c 0x0069 Botón de menú rojo 0x18e KEY_RED 0x00b7 KEYCODE_PROG_RED Se agregó en aosp/1388616.
0x0c 0x006a Botón de menú verde 0x18f KEY_GREEN 0x00b8 KEYCODE_PROG_GREEN Se agregó en aosp/1388616.
0x0c 0x006b Botón de menú azul 0x191 KEY_BLUE 0x00ba KEYCODE_PROG_BLUE Se agregó en aosp/1388616.
0x0c 0x006c Botón de menú amarillo 0x190 KEY_YELLOW 0x00b9 KEYCODE_PROG_YELLOW Se agregó en aosp/1388616.
0x0c 0x0081 Asignar selección
0x0c 0x0082 Paso de modo
0x0c 0x0083 Recordar último 0x0195 KEY_LAST 0xe5 KEYCODE_LAST_CHANNEL Se agregó en aosp/1365551.
0x0c 0x0084 Ingresa el canal
0x0c 0x0085 Pedir película
0x0c 0x0088 Computadora con Media Select 0x0178 KEY_PC
0x0c 0x0089 TV con Media Select 0x0179 KEY_TV 3.0 0x00aa KEYCODE_TV
0x0c 0x008a Media Select WWW 0x0096 KEY_WWW 1.6 0x0040 KEYCODE_EXPLORER
0x0c 0x008b DVD de Media Select 0x0185 KEY_DVD
0x0c 0x008c Teléfono de selección de contenido multimedia 0x00a9 KEY_PHONE 3.0 0x0005 KEYCODE_CALL
0x0c 0x008d Guía del programa de Media Select 0x016a KEY_PROGRAM 3.0 0x00ac KEYCODE_GUIDE
0x0c 0x008e Teléfono con videoteléfono de selección de contenido multimedia 0x01a0 KEY_VIDEOPHONE
0x0c 0x008f Juegos de Media Select 0x01a1 KEY_GAMES
0x0c 0x0090 Mensajes de selección de contenido multimedia 0x018c KEY_MEMO
0x0c 0x0091 CD de Media Select 0x017f KEY_CD
0x0c 0x0092 VCR de Media Select 0x017b KEY_VCR
0x0c 0x0093 Sintonizador de Media Select 0x0182 KEY_TUNER
0x0c 0x0094 Salir 0x00ae KEY_EXIT
0x0c 0x0095 Ayuda 0x008a KEY_HELP
0x0c 0x0096 Cinta de selección de contenido multimedia 0x0180 KEY_TAPE
0x0c 0x0097 Cable de selección de contenido multimedia 0x017a KEY_TV2
0x0c 0x0098 Satélite de Media Select 0x017d KEY_SAT
0x0c 0x0099 Seguridad de Media Select
0x0c 0x009a Media Select Home 0x016e KEY_PVR 3.0 0x00ad KEYCODE_DVR
0x0c 0x0061 Subtítulos 0x0172 KEY_SUBTITLE 0x00af KEYCODE_CAPTIONS Se agregó en aosp/1365552.
0x0c 0x009c Incremento de canal 0x0192 KEY_CHANNELUP 3.0 0x00a6 KEYCODE_CHANNEL_UP
0x0c 0x009d Decremento de canal 0x0193 KEY_CHANNELDOWN 3.0 0x00a7 KEYCODE_CHANNEL_DOWN
0x0c 0x009e SAP de Media Select
0x0c 0x00a0 VCR Plus 0x017c KEY_VCR2
0x0c 0x00a1 Una vez
0x0c 0x00a2 Diario
0x0c 0x00a3 Semanal
0x0c 0x00a4 Mensual
0x0c 0x00b0 Reproducir 0x00cf KEY_PLAY 3.0 0x007e KEYCODE_MEDIA_PLAY
0x0c 0x00b1 Pausar 0x0077 KEY_PAUSE 3.0 0x0079 KEYCODE_BREAK
0x0c 0x00b2 Grabar 0x00a7 KEY_RECORD 3.0 0x0082 KEYCODE_MEDIA_RECORD
0x0c 0x00b3 Avanzar rápido 0x00d0 KEY_FASTFORWARD 3.0 0x005a KEYCODE_MEDIA_FAST_FORWARD
0x0c 0x00b4 Retroceder 0x00a8 KEY_REWIND 3.0 0x0059 KEYCODE_MEDIA_REWIND
0x0c 0x00b5 Scan Next Track 0x00a3 KEY_NEXTSONG 3.0 0x0057 KEYCODE_MEDIA_NEXT
0x0c 0x00b6 Escanear pista anterior 0x00a5 KEY_PREVIOUSSONG 3.0 0x0058 KEYCODE_MEDIA_PREVIOUS
0x0c 0x00b7 Detener 0x00a6 KEY_STOPCD 3.0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x00b8 Expulsar 0x00a1 KEY_EJECTCD 3.0 0x0081 KEYCODE_MEDIA_EJECT
0x0c 0x00b9 Reproducción aleatoria
0x0c 0x00ba Selecciona Disco
0x0c 0x00bb Ingresar disco
0x0c 0x00bc Repetir 0x01b7 KEY_MEDIA_REPEAT
0x0c 0x00be Pista normal
0x0c 0x00c0 Fotograma hacia adelante
0x0c 0x00c1 Parte posterior del marco
0x0c 0x00c2 Marcar
0x0c 0x00c3 Marca clara
0x0c 0x00c4 Repetir desde la marca
0x0c 0x00c5 Volver a la marca
0x0c 0x00c6 Marcar búsqueda para avanzar
0x0c 0x00c7 Marca de búsqueda hacia atrás
0x0c 0x00c8 Restablecimiento del contador
0x0c 0x00c9 Mostrar contador
0x0c 0x00ca Seguimiento de incrementos
0x0c 0x00cb Disminución del seguimiento
0x0c 0x00cc Detener / expulsar
0x0c 0x00cd Reproducir/Pausar 0x00a4 KEY_PLAYPAUSE 3.0 0x0055 KEYCODE_MEDIA_PLAY_PAUSE
0x0c 0x00ce Reproducir / Omitir
0x0c 0x00e2 Silenciar 0x0071 KEY_MUTE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x0c 0x00e5 Refuerzo de graves 0x00d1 KEY_BASSBOOST
0x0c 0x00e6 Modo envolvente
0x0c 0x00e7 Volumen
0x0c 0x00e8 MPX
0x0c 0x00e9 Aumento del volumen 0x0073 KEY_VOLUMEUP 1.6 0x0018 KEYCODE_VOLUME_UP
0x0c 0x00ea Bajar el volumen 0x0072 KEY_VOLUMEDOWN 1.6 0x0019 KEYCODE_VOLUME_DOWN
0x0c 0x0173 Incremento de audio alternativo 0x00de KEYCODE_MEDIA_AUDIO_TRACK Se agregó en aosp/1365554
0x0c 0x0181 Configuración del botón de inicio de AL Herramienta
0x0c 0x0182 Configuración del botón programable de AL 0x009c KEY_BOOKMARKS 3.0 0x00ae KEYCODE_BOOKMARK
0x0c 0x0183 Configuración de control de consumo de AL 0x00ab KEY_CONFIG 4.0.3 0x00d1 KEYCODE_MUSIC
0x0c 0x0184 Procesador de texto de AL 0x01a5 KEY_WORDPROCESSOR
0x0c 0x0185 Editor de texto de AL 0x01a6 KEY_EDITOR
0x0c 0x0186 Hoja de cálculo de AL 0x01a7 KEY_SPREADSHEET
0x0c 0x0187 Editor de gráficos de AL 0x01a8 KEY_GRAPHICSEDITOR
0x0c 0x0188 App de presentación de AL 0x01a9 KEY_PRESENTATION
0x0c 0x0189 App de base de datos de IA 0x01aa KEY_DATABASE
0x0c 0x018a Lector de correo electrónico de AL 0x009b KEY_MAIL 1.6 0x0041 KEYCODE_ENVELOPE
0x0c 0x018b Lector de noticias de AL 0x01ab KEY_NEWS
0x0c 0x018c Buzón de voz de AL 0x01ac KEY_VOICEMAIL
0x0c 0x018d Contactos o Libreta de direcciones de AL 0x01ad KEY_ADDRESSBOOK 4.0.3 0x00cf KEYCODE_CONTACTS
0x0c 0x018e Calendario o agenda de AL 0x018d KEY_CALENDAR 4.0.3 0x00d0 KEYCODE_CALENDAR
0x0c 0x018f Administrador de tareas o proyectos de AL
0x0c 0x0190 Registro de AL / Diario / Tarjeta de tiempo
0x0c 0x0191 Chequera o finanzas de AL 0x00db KEY_FINANCE
0x0c 0x0192 Calculadora de AL 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATOR
0x0c 0x0193 Captura o reproducción de A/V de AL
0x0c 0x0194 Navegador de la máquina local de AL 0x0090 KEY_FILE
0x0c 0x0195 Navegador de LAN/WAN de AL
0x0c 0x0196 Navegador de Internet de AL 0x0096 KEY_WWW 1.6 0x0040 KEYCODE_EXPLORER
0x0c 0x0197 Conexión remota de AL/ISP Connect
0x0c 0x0198 AL Network Conference
0x0c 0x0199 Chat de red de AL 0x00d8 KEY_CHAT
0x0c 0x019a Telefonía o Dialer de AL
0x0c 0x019b Acceso de AL
0x0c 0x019c Salida de AL 0x01b1 KEY_LOGOFF
0x0c 0x019d Acceso o salida de AL
0x0c 0x019e Bloqueo o protector de pantalla de la terminal de AL 0x0098 KEY_COFFEE 4.0 0x001a KEYCODE_POWER
0x0c 0x019f Panel de control de AL
0x0c 0x01a0 Procesador de línea de comandos o ejecución de AL
0x0c 0x01a1 Administrador de tareas o proceso de AL
0x0c 0x01a2 AL Select Task / Application
0x0c 0x01a3 AL Next Task / Application
0x0c 0x01a4 Tarea o aplicación anterior de AL
0x0c 0x01a5 Tarea o app de detención preventiva de AL.
0x0c 0x01a6 Centro de ayuda integrado de AL 0x008a KEY_HELP
0x0c 0x01a7 Documentos de AL 0x00eb KEY_DOCUMENTS
0x0c 0x01a8 Tesauro de AL
0x0c 0x01a9 Diccionario de AL
0x0c 0x01aa AL Desktop
0x0c 0x01ab Corrector ortográfico de AL 0x01b0 KEY_SPELLCHECK
0x0c 0x01ac Revisión gramatical de AL
0x0c 0x01ad Estado de la red inalámbrica de AL
0x0c 0x01ae Diseño del teclado de AL
0x0c 0x01af Protección contra virus de AL
0x0c 0x01b0 Encriptación de AL
0x0c 0x01b1 Protector de pantalla de AL
0x0c 0x01b2 Alarmas de AL
0x0c 0x01b3 Reloj AL
0x0c 0x01b4 Navegador de archivos de AL
0x0c 0x01b5 Estado de la alimentación de AL
0x0c 0x01b6 Navegador de imágenes de AL 0x00e2 KEY_MEDIA 3.0 0x004f KEYCODE_HEADSETHOOK
0x0c 0x01b7 Navegador de audio de AL 0x00d5 KEY_SOUND 4.0.3 0x00d1 KEYCODE_MUSIC
0x0c 0x01b8 Navegador de películas de AL
0x0c 0x01b9 Administrador de derechos digitales de AL
0x0c 0x01ba Billetera digital de AL
0x0c 0x01bc Mensajería instantánea de AL 0x01ae KEY_MESSENGER
0x0c 0x01bd Navegador de funciones y sugerencias de OEM de AL 0x0166 KEY_INFO
0x0c 0x01be Ayuda para OEM de AL
0x0c 0x01bf Comunidad en línea de AL
0x0c 0x01c0 Navegador de contenido de entretenimiento de AL
0x0c 0x01c1 Navegador de compras en línea de AL
0x0c 0x01c2 Información o ayuda sobre la tarjeta inteligente de AL
0x0c 0x01c3 Navegador de mercado o finanzas de AL
0x0c 0x01c4 Navegador de noticias personalizado de AL Corp.
0x0c 0x01c5 Navegador de actividad en línea de AL
0x0c 0x01c6 Navegador de búsqueda o investigación de IA
0x0c 0x01c7 Reproductor de audio de AL
0x0c 0x0201 AC nuevo 0x00b5 KEY_NEW
0x0c 0x0202 Apertura en AC 0x0086 KEY_OPEN
0x0c 0x0203 AC Close 0x00ce KEY_CLOSE
0x0c 0x0204 Salida de CA 0x00ae KEY_EXIT
0x0c 0x0205 Maximizar AC
0x0c 0x0206 AC Minimize
0x0c 0x0207 Ahorro de AC 0x00ea KEY_SAVE
0x0c 0x0208 AC Print 0x00d2 KEY_PRINT
0x0c 0x0209 Propiedades de AC 0x0082 KEY_PROPS
0x0c 0x021a AC Undo 0x0083 KEY_UNDO
0x0c 0x021b Texto de AC 0x0085 KEY_COPY
0x0c 0x021c Corte de CA 0x0089 KEY_CUT
0x0c 0x021d Pegar AC 0x0087 KEY_PASTE
0x0c 0x021e Seleccionar todo en AC
0x0c 0x021f Búsqueda de AC 0x0088 KEY_FIND
0x0c 0x0220 Buscar y reemplazar de AC
0x0c 0x0221 Búsqueda de AC 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 Respaldo de AC 0x009e KEY_BACK 1.6 0x0004 KEYCODE_BACK
0x0c 0x0225 AC Forward 0x009f KEY_FORWARD 3.0 0x007d KEYCODE_FORWARD
0x0c 0x0226 Parada de AC 0x0080 KEY_STOP 3.0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x0227 Actualización de AC 0x00ad KEY_REFRESH
0x0c 0x0228 Vínculo anterior de AC
0x0c 0x0229 AC Next Link
0x0c 0x022a Favoritos de AC 0x009c KEY_BOOKMARKS 3.0 0x00ae KEYCODE_BOOKMARK
0x0c 0x022b Historial de AC
0x0c 0x022c Suscripciones a AC
0x0c 0x022d Zoom de AC 0x01a2 KEY_ZOOMIN
0x0c 0x022e AC Zoom Out 0x01a3 KEY_ZOOMOUT
0x0c 0x022f Zoom de AC 0x01a4 KEY_ZOOMRESET 2
0x0c 0x0230 Vista de pantalla completa de AC
0x0c 0x0231 Vista normal de AC
0x0c 0x0232 Activar o desactivar la vista de CA
0x0c 0x0233 Desplazamiento hacia arriba de AC 0x00b1 KEY_SCROLLUP 3.0 0x005c KEYCODE_PAGE_UP
0x0c 0x0234 Desplazamiento hacia abajo del aire acondicionado 0x00b2 KEY_SCROLLDOWN 3.0 0x005d KEYCODE_PAGE_DOWN
0x0c 0x0236 Desplazamiento lateral hacia la izquierda
0x0c 0x0237 Desplazamiento lateral hacia la derecha (AC)
0x0c 0x0239 Ventana nueva de AC
0x0c 0x023a Mosaico de AC horizontal
0x0c 0x023b Mosaico vertical de AC
0x0c 0x023c Formato de AC
0x0c 0x023d Edición de AC
0x0c 0x023e AC Bold
0x0c 0x023f Cursiva de AC
0x0c 0x0240 Subrayado de AC
0x0c 0x0241 Tachado de AC
0x0c 0x0242 Subíndice de AC
0x0c 0x0243 Superíndice de CA
0x0c 0x0244 AC en mayúsculas
0x0c 0x0245 Rotación de AC
0x0c 0x0246 Cambio de tamaño de AC
0x0c 0x0247 AC Flip horizontal
0x0c 0x0248 AC Flip Vertical
0x0c 0x0249 Espejo horizontal con aire acondicionado
0x0c 0x024a Espejo vertical de AC
0x0c 0x024b Selección de fuentes de AC
0x0c 0x024c Color de la fuente de AC
0x0c 0x024d Tamaño de la fuente de AC
0x0c 0x024e AC Justify Left
0x0c 0x024f AC Justify Center H
0x0c 0x0250 Justificación a la derecha del AC
0x0c 0x0251 Bloque de justificación de CA (H)
0x0c 0x0252 AC Justify Top
0x0c 0x0253 AC Justify Center V
0x0c 0x0254 Justificación inferior de CA
0x0c 0x0255 Bloque de justificación de CA en V
0x0c 0x0256 Disminución de la sangría de AC
0x0c 0x0257 Aumento de sangría de CA
0x0c 0x0258 Lista numerada de AC
0x0c 0x0259 Numeración de reinicios del AC
0x0c 0x025a Lista con viñetas de AC
0x0c 0x025b Promoción de AC
0x0c 0x025c Desactivación de AC
0x0c 0x025d AC Sí
0x0c 0x025e No hay CA
0x0c 0x025f Cancelación de AC 0x00df KEY_CANCEL
0x0c 0x0260 Catálogo de AC
0x0c 0x0261 Compra o confirmación de la compra de AC
0x0c 0x0262 AC Add to Cart
0x0c 0x0263 Expansión de AC
0x0c 0x0264 AC Expandir todo
0x0c 0x0265 AC Collapse
0x0c 0x0266 AC Collapse All
0x0c 0x0267 Vista previa de la impresión de AC
0x0c 0x0268 Pegar elemento especial de AC
0x0c 0x0269 Modo de inserción de AC
0x0c 0x026a Eliminación de AC
0x0c 0x026b Bloqueo de CA
0x0c 0x026c Desbloqueo de AC
0x0c 0x026d AC Protect
0x0c 0x026e AC Unprotect
0x0c 0x026f AC Attach Comment
0x0c 0x0270 AC Borrar comentario
0x0c 0x0271 AC View Comment
0x0c 0x0272 Palabra seleccionada de AC
0x0c 0x0273 Sentencia de selección de AC
0x0c 0x0274 AC Select Paragraph
0x0c 0x0275 Seleccionar columna de AC
0x0c 0x0276 AC Select Row
0x0c 0x0277 Tabla de selección de AC
0x0c 0x0278 Objeto de selección de AC
0x0c 0x0279 Rehacer o repetir el AC 0x00b6 KEY_REDO
0x0c 0x027a Ordenar por AC
0x0c 0x027b AC Sort Ascending
0x0c 0x027c AC Sort Descending
0x0c 0x027d Filtro de CA
0x0c 0x027e AC Set Clock
0x0c 0x027f Reloj de vista de CA
0x0c 0x0280 AC Select Time Zone
0x0c 0x0281 AC Edit Time Zones
0x0c 0x0282 Cómo configurar una alarma en el AC
0x0c 0x0283 Alarma de AC clara
0x0c 0x0284 Posponer alarma del aire acondicionado
0x0c 0x0285 Alarma de restablecimiento del aire acondicionado
0x0c 0x0286 Sincronización de AC
0x0c 0x0287 Envío y recepción de AC
0x0c 0x0288 AC Send To
0x0c 0x0289 Respuesta de AC 0x00e8 KEY_REPLY
0x0c 0x028a AC Reply All
0x0c 0x028b AC Forward Msg 0x00e9 KEY_FORWARDMAIL
0x0c 0x028c AC Send 0x00e7 KEY_SEND
0x0c 0x028d Archivo adjunto de AC
0x0c 0x028e Carga de AC
0x0c 0x028f Descarga de AC (Guardar objetivo como)
0x0c 0x0290 AC Set Borders
0x0c 0x0291 AC Insert Row
0x0c 0x0292 Insertar columna de AC
0x0c 0x0293 Archivo de inserción de AC
0x0c 0x0294 Insertar imagen de AC
0x0c 0x0295 Objeto de inserción de AC
0x0c 0x0296 Símbolo de inserción de AC
0x0c 0x0297 Guardar y cerrar el aire acondicionado
0x0c 0x0298 Cambio de nombre de AC
0x0c 0x0299 Combinación de AC
0x0c 0x029a División de AC
0x0c 0x029b AC Distribute Horizontally
0x0c 0x029c AC Distribute Vertically

Asignaciones adicionales que no son HID

Estas asignaciones describen funciones que no aparecen en HID, pero para las que existen códigos de teclas de Linux.

LKC Nombre del código de clave de Linux Versión AKC Nombre de código de clave de Android Notas
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

Claves heredadas no admitidas

Estas asignaciones aparecieron en versiones anteriores de Android, pero no eran coherentes con HID o usaban códigos de teclas no estándar de Linux. Ya no son compatibles.

LKC Nombre del código de clave de Linux Versión AKC Nombre de código de clave de Android Notas
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

Notas

  1. El código de tecla de Android asociado con las teclas alfanuméricas y simbólicas comunes puede variar según el diseño y el idioma del teclado. Por razones históricas, los códigos de escaneo físicos y los usos de HID asociados con las teclas de un teclado suelen definirse de forma posicional, aunque las etiquetas impresas en esas teclas pueden variar de un idioma a otro.

    En un teclado en inglés de EE.UU. (QWERTY), la tecla alfabética de la esquina superior izquierda está etiquetada como Q. En un teclado francés (AZERTY), la tecla en la misma posición está etiquetada como A. A pesar de la etiqueta, en ambos teclados, la tecla alfabética superior izquierda se refiere al uso de HID 0x07 0x0014, que se asigna al código de tecla KEY_Q de Linux.

    Cuando Android se configura con un diseño de teclado en inglés de EE.UU., el código de tecla KEY_Q de Linux se asignará al código de tecla KEYCODE_Q de Android y producirá los caracteres "Q" y "q". Sin embargo, cuando Android se configura con un diseño de teclado francés, el código de tecla KEY_Q de Linux se asignará al código de tecla KEYCODE_A de Android y producirá los caracteres "A" y "a".

    Por lo general, el código de clave de Android refleja la interpretación de la clave específica del idioma, por lo que se puede usar un código de clave de Android diferente para diferentes idiomas.

  2. 0x0c 0x022f AC Zoom se define en el HID como un control lineal, pero el kernel lo asigna como una clave, lo que probablemente sea incorrecto.

  3. Las teclas de función de Linux KEY_FN_* se asignan a códigos de teclas más simples, pero se envían con el bit de estado meta META_FUNCTION establecido en verdadero.

  4. Antes de Android Ice Cream Sandwich 4.0, el diseño de teclas predeterminado contenía asignaciones para algunos códigos de teclas adicionales que no se definían en los encabezados del kernel de Linux principal. Desde entonces, se quitaron estas asignaciones porque a estos códigos de teclas no definidos anteriormente se les asignaron significados diferentes en versiones más recientes del kernel de Linux.

Fuentes

  1. Tablas de uso de HID USB v1.12
  2. Kernel de Linux 2.6.39: include/linux/input.h, drivers/hid/hid-input.c
  3. Android ICS: qwerty.kl, Generic.kl, KeyEvent.java