Dispositivos de teclado

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

Este documento describe únicamente los teclados físicos. Consulte el SDK de Android para obtener información sobre los teclados virtuales (editores de métodos de entrada).

Clasificación del teclado

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

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

  • El dispositivo de entrada informa la presencia de cualquier código clave de Linux utilizado 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 sobre los botones del joystick y del gamepad de la misma manera que se informan las teclas del teclado. Por lo tanto, los joysticks y gamepads también utilizan archivos de mapas clave para la configuración.

Una vez que un dispositivo de entrada se ha clasificado como teclado, el sistema carga el archivo de configuración del dispositivo de entrada y la distribución del teclado.

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

  • Si el dispositivo de entrada tiene teclas asignadas a KEYCODE_Q , se considera que el dispositivo tiene un teclado alfabético (en lugar de numérico). La capacidad 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), entonces se considera que el dispositivo tiene un teclado direccional. La capacidad del teclado direccional se informa en el objeto Configuration del recurso como NAVIGATION_DPAD .

  • Si el dispositivo de entrada tiene teclas asignadas a KEYCODE_BUTTON_A u otras teclas relacionadas con el gamepad, se considera que el dispositivo tiene un gamepad.

Requisitos del controlador de teclado

  1. Los controladores de teclado sólo deben registrar códigos de teclas para las teclas que realmente admiten. El registro de códigos de teclas excesivos puede confundir el algoritmo de clasificación del dispositivo o hacer que el sistema detecte incorrectamente las capacidades de teclado admitidas del dispositivo.

  2. Los controladores de teclado deben usar EV_KEY para informar las pulsaciones de teclas, usando 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 a 2 para indicar que la tecla está presionada. repitiéndose automáticamente.

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

  4. Los controladores de teclado pueden indicar opcionalmente el uso de HID o el código de escaneo de bajo nivel enviando EV_MSC con MSC_SCANCODE y un valor que indica el uso o el código de escaneo cuando se presiona la tecla. Actualmente Android no utiliza 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 maneja esto automáticamente. Al momento de escribir este artículo, Android usa LED_CAPSLOCK , LED_SCROLLLOCK y LED_NUMLOCK . Estos LED solo necesitan ser compatibles cuando el teclado realmente tiene las luces indicadoras asociadas.

  6. Los controladores de teclado para teclados integrados (por ejemplo, que usan una matriz GPIO) deben asegurarse de enviar eventos EV_KEY con un valor de 0 para cualquier tecla que aún esté presionada cuando el dispositivo entre en modo de suspensión. De lo contrario, las teclas podrían atascarse y se repetirán automáticamente para siempre.

Operación del teclado

El siguiente es un breve resumen del funcionamiento del teclado en Android.

  1. EventHub lee eventos sin procesar del controlador evdev y asigna códigos de teclas de Linux (a veces denominados códigos de escaneo) a códigos de teclas de Android utilizando el mapa de distribución de teclas del teclado.

  2. InputReader consume los eventos sin procesar y actualiza el estado de la metaclave. Por ejemplo, si se presiona o suelta la tecla Mayús izquierda, el lector configurará o restablecerá los bits META_SHIFT_LEFT_ON y META_SHIFT_ON en consecuencia.

  3. InputReader notifica a InputDispatcher sobre el evento clave.

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

  5. Si un InputFilter está actualmente en uso, InputDispatcher le da la oportunidad de consumir o transformar la clave. El InputFilter se puede utilizar 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 hilo de envío.

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

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

  9. Dentro de la aplicación, el evento clave se propaga hacia abajo en la jerarquía de vistas hasta la vista enfocada para el envío de claves previas al IME.

  10. Si el evento clave no se maneja en el envío previo al IME y hay un IME en uso, el evento clave se entrega al IME.

  11. Si el IME no consumió el evento clave, entonces el evento clave se propaga hacia abajo en la jerarquía de vistas hasta la vista enfocada para el envío de claves estándar.

  12. La aplicación informa al InputDispatcher si se consumió el evento clave. Si el evento no se consumió, InputDispatcher llama WindowManagerPolicy.dispatchUnhandledKey para aplicar el comportamiento de "alternativa". Dependiendo de la acción alternativa, el ciclo de envío de eventos clave puede reiniciarse utilizando un código clave diferente. Por ejemplo, si una aplicación no maneja KEYCODE_ESCAPE , el sistema puede volver a enviar el evento clave como KEYCODE_BACK .

Configuración del teclado

El comportamiento del teclado está determinado por la distribución de las teclas, el mapa de caracteres de las teclas y la configuración del dispositivo de entrada.

Consulte 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 del dispositivo de entrada se utilizan para los teclados.

Diseño del teclado

Definición: keyboard.layout = <nombre>

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

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

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

teclado.mapa de caracteres

Definición: keyboard.characterMap = <nombre>

Especifica el nombre del archivo de mapa de caracteres clave asociado con el dispositivo de entrada, excluyendo la extensión .kcm . Si no se encuentra este archivo, el sistema de entrada utilizará en su lugar el mapa de caracteres clave predeterminado.

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

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

teclado.orientaciónAware

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 giran cuando cambia la orientación de la pantalla asociada.

  • Si el valor es 0 , el teclado es inmune a los cambios de orientación de la pantalla.

El valor predeterminado es 0 .

El conocimiento de la orientación se utiliza para admitir la rotación de las teclas direccionales del teclado, como en el Motorola Droid. Por ejemplo, cuando el dispositivo se gira 90 grados en el sentido de las agujas del reloj desde su orientación natural, KEYCODE_DPAD_UP se reasigna para producir KEYCODE_DPAD_RIGHT ya que la tecla "arriba" termina apuntando "derecha" cuando el dispositivo se mantiene en esa orientación.

teclado.integrado

Definición: keyboard.builtIn = 0 | 1

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

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

Al teclado integrado siempre se le asigna una identificación de dispositivo de 0 . A otros teclados que no están integrados se les asignan identificadores de dispositivo únicos distintos de cero.

Usar una identificación de 0 para el teclado integrado es importante para mantener la compatibilidad con el campo KeyCharacterMap.BUILT_IN_KEYBOARD , que especifica la identificación del teclado integrado y tiene un valor de 0 . Este campo ha quedado obsoleto en la API, pero es posible que aplicaciones más antiguas aún lo utilicen.

Un teclado de función especial (uno cuyo mapa de caracteres clave especifica un tipo de SPECIAL_FUNCTION ) nunca se registrará como teclado integrado, independientemente de la configuración de esta propiedad. Esto se debe a que, por definición, un teclado de funciones especiales no está diseñado para usarse con fines generales de escritura.

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 utilizaba ninguna propiedad de configuración. Se supuso que todos los teclados estaban conectados físicamente y tenían en cuenta la orientación. El diseño de clave predeterminado y el mapa de caracteres clave se denominaron qwerty en lugar de Generic . El formato del mapa de caracteres clave también era muy diferente y el marco no admitía teclados completos estilo PC ni teclados externos.

Al actualizar dispositivos a Honeycomb, asegúrese de crear o actualizar la configuración necesaria y los archivos de mapa clave.

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

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

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

A medida que Android lee los eventos EV_KEY del kernel de Linux, traduce cada código de clave de Linux en su código de clave de Android correspondiente de acuerdo con el archivo de diseño de claves del dispositivo.

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

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

Tablas de códigos

Las siguientes tablas muestran cómo se relacionan entre sí los usos de HID, los códigos clave de Linux y los códigos clave de Android.

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

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

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

La columna Versión especifica la primera versión de la plataforma Android que incluyó esta clave en su mapa de claves predeterminado. Se muestran varias filas en los casos en que el mapa de claves predeterminado ha cambiado entre versiones. La versión más antigua indicada es la 1.6.

  • En Gingerbread (2.3) y versiones anteriores, el mapa de claves predeterminado era qwerty.kl . Este mapa de teclas solo fue diseñado para usarse con el emulador de Android y no para admitir teclados externos arbitrarios. Sin embargo, algunos fabricantes de equipos originales agregaron soporte para teclado Bluetooth a la plataforma y confiaron en qwerty.kl para proporcionar las asignaciones de teclado necesarias. En consecuencia, estas asignaciones más antiguas pueden ser de interés para los OEM que están construyendo periféricos para estos dispositivos en particular. Tenga en cuenta que las asignaciones son sustancialmente diferentes de las actuales, particularmente con respecto al tratamiento de la tecla HOME . Se recomienda que todos los periféricos nuevos se desarrollen de acuerdo con Honeycomb o mapas clave más recientes (es decir, HID estándar).

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

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

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

Página de teclado y teclado HID (0x07)

Uso de HID Nombre de uso de HID LKC Nombre del código clave de Linux Versión AKC Nombre del código clave de Android Notas
0x07 0x0001 Error de teclado al pasar
0x07 0x0002 Error de POST del teclado
0x07 0x0003 Error de teclado indefinido
0x07 0x0004 Teclado a y a 0x001e CLAVE_A 1.6 0x001d CÓDIGO CLAVE_A 1
0x07 0x0005 Teclado b y b 0x0030 CLAVE_B 1.6 0x001e CÓDIGO CLAVE_B 1
0x07 0x0006 Teclado c y c 0x002e LLAVE_C 1.6 0x001f CÓDIGO CLAVE_C 1
0x07 0x0007 Teclado d y D 0x0020 LLAVE_D 1.6 0x0020 CÓDIGO CLAVE_D 1
0x07 0x0008 Teclado e y e 0x0012 LLAVE_E 1.6 0x0021 CÓDIGO CLAVE_E 1
0x07 0x0009 Teclado f y f 0x0021 LLAVE_F 1.6 0x0022 CÓDIGO CLAVE_F 1
0x07 0x000a Teclado g y g 0x0022 LLAVE_G 1.6 0x0023 CÓDIGO CLAVE_G 1
0x07 0x000b Teclado h y h 0x0023 LLAVE_H 1.6 0x0024 CÓDIGO CLAVE_H 1
0x07 0x000c teclado i y yo 0x0017 LLAVE_I 1.6 0x0025 CÓDIGO CLAVE_I 1
0x07 0x000d Teclado j y j 0x0024 LLAVE_J 1.6 0x0026 CÓDIGO CLAVE_J 1
0x07 0x000e Teclado k y k 0x0025 LLAVE_K 1.6 0x0027 CÓDIGO CLAVE_K 1
0x07 0x000f Teclado l y l 0x0026 LLAVE_L 1.6 0x0028 CÓDIGO CLAVE_L 1
0x07 0x0010 Teclado m y M 0x0032 CLAVE_M 1.6 0x0029 CÓDIGO CLAVE_M 1
0x07 0x0011 Teclado n y n 0x0031 LLAVE_N 1.6 0x002a CÓDIGO CLAVE_N 1
0x07 0x0012 Teclado o y O 0x0018 LLAVE_O 1.6 0x002b CÓDIGO CLAVE_O 1
0x07 0x0013 Teclado p y P 0x0019 LLAVE_P 1.6 0x002c CÓDIGO CLAVE_P 1
0x07 0x0014 Teclado q y q 0x0010 LLAVE_Q 1.6 0x002d CÓDIGO CLAVE_Q 1
0x07 0x0015 Teclado r y r 0x0013 LLAVE_R 1.6 0x002e CÓDIGO CLAVE_R 1
0x07 0x0016 Teclado s y s 0x001f LLAVES 1.6 0x002f CÓDIGO CLAVE_S 1
0x07 0x0017 Teclado t y T 0x0014 CLAVE_T 1.6 0x0030 CÓDIGO CLAVE_T 1
0x07 0x0018 Teclado u y u 0x0016 LLAVE_U 1.6 0x0031 CÓDIGO CLAVE_U 1
0x07 0x0019 Teclado v y v 0x002f CLAVE_V 1.6 0x0032 CÓDIGO CLAVE_V 1
0x07 0x001a Teclado w y W 0x0011 LLAVE_W 1.6 0x0033 CÓDIGO CLAVE_W 1
0x07 0x001b Teclado x y x 0x002d LLAVE_X 1.6 0x0034 CÓDIGO CLAVE_X 1
0x07 0x001c Teclado y y y 0x0015 LLAVE_Y 1.6 0x0035 CÓDIGO CLAVE_Y 1
0x07 0x001d Teclado z y z 0x002c LLAVE_Z 1.6 0x0036 CÓDIGO CLAVE_Z 1
0x07 0x001e Teclado 1 y ! 0x0002 CLAVE_1 1.6 0x0008 CÓDIGO CLAVE_1 1
0x07 0x001f Teclado 2 y @ 0x0003 CLAVE_2 1.6 0x0009 CÓDIGO CLAVE_2 1
0x07 0x0020 Teclado 3 y # 0x0004 CLAVE_3 1.6 0x000a CÓDIGO CLAVE_3 1
0x07 0x0021 Teclado 4 y $ 0x0005 CLAVE_4 1.6 0x000b CÓDIGO CLAVE_4 1
0x07 0x0022 Teclado 5 y % 0x0006 CLAVE_5 1.6 0x000c CÓDIGO CLAVE_5 1
0x07 0x0023 Teclado 6 y ^ 0x0007 CLAVE_6 1.6 0x000d CÓDIGO CLAVE_6 1
0x07 0x0024 Teclado 7 y & 0x0008 CLAVE_7 1.6 0x000e CÓDIGO CLAVE_7 1
0x07 0x0025 Teclado 8 y * 0x0009 CLAVE_8 1.6 0x000f CÓDIGO CLAVE_8 1
0x07 0x0026 Teclado 9 y ( 0x000a CLAVE_9 1.6 0x0010 CÓDIGO CLAVE_9 1
0x07 0x0027 Teclado 0 y ) 0x000b CLAVE_0 1.6 0x0007 CÓDIGO CLAVE_0 1
0x07 0x0028 Retorno del teclado (ENTER) 0x001c TECLA_ENTER 1.6 0x0042 CÓDIGO CLAVE_ENTER 1
0x07 0x0029 ESCAPE del teclado 0x0001 LLAVE_ESC 3.0 0x006f KEYCODE_ESCAPE
"" "" "" "" 2.3 0x0004 CÓDIGO CLAVE_VOLVER
0x07 0x002a Teclado BORRAR (Retroceso) 0x000e KEY_BACKSPACE 1.6 0x0043 CÓDIGO CLAVE_DEL
0x07 0x002b Pestaña del teclado 0x000f TECLA_TAB 1.6 0x003d CÓDIGO CLAVE_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 CÓDIGO CLAVE_MINUS 1
0x07 0x002e Teclado = y + 0x000d CLAVE_IGUAL 1.6 0x0046 CÓDIGO CLAVE_IGUAL 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 fuera de EE. UU. # y ~ 0x002b KEY_BACKSLASH 1.6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0033 Teclado ; y : 0x0027 CLAVE_PUNTO Y COMÓN 1.6 0x004a CÓDIGO CLAVE_PUNTO Y COMICÓN 1
0x07 0x0034 Teclado ' y " 0x0028 KEY_APOSTROPHE 1.6 0x004b KEYCODE_APOSTROPHE 1
0x07 0x0035 Teclado ` y ~ 0x0029 KEY_GRAVE 3.0 0x0044 KEYCODE_GRAVE 1
0x07 0x0036 Teclado y < 0x0033 LLAVE_COMA 1.6 0x0037 CÓDIGO CLAVE_COMA 1
0x07 0x0037 Teclado . y > 0x0034 LLAVE_PUNTO 1.6 0x0038 KEYCODE_PERIOD 1
0x07 0x0038 Teclado / y ? 0x0035 KEY_SLASH 1.6 0x004c KEYCODE_SLASH 1
0x07 0x0039 Bloqueo de mayúsculas del teclado 0x003a KEY_CAPSLOCK 3.0 0x0073 KEYCODE_CAPS_LOCK
0x07 0x003a Teclado F1 0x003b TECLA_F1 3.0 0x0083 CÓDIGO CLAVE_F1
"" "" "" "" 1.6 0x0052 KEYCODE_MENU
0x07 0x003b Teclado F2 0x003c TECLA_F2 3.0 0x0084 CÓDIGO CLAVE_F2
"" "" "" "" 1.6 0x0002 KEYCODE_SOFT_RIGHT
0x07 0x003c Teclado F3 0x003d TECLA_F3 3.0 0x0085 CÓDIGO CLAVE_F3
"" "" "" "" 1.6 0x0005 CÓDIGO CLAVE_LLAMADA
0x07 0x003d Teclado F4 0x003e TECLA_F4 3.0 0x0086 CÓDIGO CLAVE_F4
"" "" "" "" 1.6 0x0006 KEYCODE_ENDCALL
0x07 0x003e Teclado F5 0x003f TECLA_F5 3.0 0x0087 CÓDIGO CLAVE_F5
0x07 0x003f Teclado F6 0x0040 TECLA_F6 3.0 0x0088 CÓDIGO CLAVE_F6
0x07 0x0040 Teclado F7 0x0041 TECLA_F7 3.0 0x0089 CÓDIGO CLAVE_F7
0x07 0x0041 Teclado F8 0x0042 TECLA_F8 3.0 0x008a CÓDIGO CLAVE_F8
0x07 0x0042 Teclado F9 0x0043 TECLA_F9 3.0 0x008b CÓDIGO CLAVE_F9
0x07 0x0043 Teclado F10 0x0044 TECLA_F10 3.0 0x008c CÓDIGO CLAVE_F10
"" "" "" "" 2.3 0x0052 KEYCODE_MENU
0x07 0x0044 Teclado F11 0x0057 TECLA_F11 3.0 0x008d CÓDIGO CLAVE_F11
0x07 0x0045 Teclado F12 0x0058 TECLA_F12 3.0 0x008e CÓDIGO CLAVE_F12
0x07 0x0046 Pantalla de impresión 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 TECLA_PAUSA 3.0 0x0079 KEYCODE_BREAK
0x07 0x0049 Inserción de teclado 0x006e LLAVE_INSERT 3.0 0x007c KEYCODE_INSERT
0x07 0x004a Teclado Inicio 0x0066 LLAVE_INICIO 3.0 0x007a KEYCODE_MOVE_HOME
"" "" "" "" 1.6 0x0003 CÓDIGO CLAVE_INICIO
0x07 0x004b Teclado Página arriba 0x0068 KEY_PAGEUP 3.0 0x005c KEYCODE_PAGE_UP
0x07 0x004c Teclado Eliminar Adelante 0x006f KEY_DELETE 3.0 0x0070 KEYCODE_FORWARD_DEL
0x07 0x004d Fin del teclado 0x006b KEY_END 3.0 0x007b KEYCODE_MOVE_END
"" "" "" "" 1.6 0x0006 KEYCODE_ENDCALL
0x07 0x004e Teclado hacia abajo 0x006d KEY_PAGEDOWN 3.0 0x005d KEYCODE_PAGE_DOWN
0x07 0x004f Flecha derecha del teclado 0x006a LLAVE_DERECHA 1.6 0x0016 KEYCODE_DPAD_RIGHT
0x07 0x0050 Flecha 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 TECLA ARRIBA 1.6 0x0013 KEYCODE_DPAD_UP
0x07 0x0053 Bloqueo numérico y borrado 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 Teclado INTRO 0x0060 KEY_KPENTER 3.0 0x00a0 KEYCODE_NUMPAD_ENTER
0x07 0x0059 Teclado 1 y Fin 0x004f LLAVE_KP1 3.0 0x0091 KEYCODE_NUMPAD_1
0x07 0x005a Teclado 2 y flecha hacia abajo 0x0050 LLAVE_KP2 3.0 0x0092 KEYCODE_NUMPAD_2
0x07 0x005b Teclado 3 y PageDn 0x0051 CLAVE_KP3 3.0 0x0093 KEYCODE_NUMPAD_3
0x07 0x005c Teclado 4 y flecha izquierda 0x004b LLAVE_KP4 3.0 0x0094 KEYCODE_NUMPAD_4
0x07 0x005d Teclado 5 0x004c LLAVE_KP5 3.0 0x0095 KEYCODE_NUMPAD_5
0x07 0x005e Teclado 6 y flecha derecha 0x004d LLAVE_KP6 3.0 0x0096 KEYCODE_NUMPAD_6
0x07 0x005f Teclado 7 y Inicio 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 Re Pág 0x0049 CLAVE_KP9 3.0 0x0099 KEYCODE_NUMPAD_9
0x07 0x0062 Teclado 0 e Insertar 0x0052 KEY_KP0 3.0 0x0090 KEYCODE_NUMPAD_0
0x07 0x0063 Teclado. y eliminar 0x0053 KEY_KPDOT 3.0 0x009e KEYCODE_NUMPAD_DOT
0x07 0x0064 Teclado fuera de EE. UU. \ y | 0x0056 CLAVE_102ND 4.0 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0065 Aplicación de teclado 0x007f LLAVE_COMPOSE 3.0 0x0052 KEYCODE_MENU
"" "" "" "" 1.6 0x0054 KEYCODE_SEARCH
0x07 0x0066 Alimentación del teclado 0x0074 TECLA_POWER 1.6 0x001a KEYCODE_POWER
0x07 0x0067 Teclado = 0x0075 KEY_KPEQUAL 3.0 0x00a1 KEYCODE_NUMPAD_EQUALS
0x07 0x0068 Teclado F13 0x00b7 LLAVE_F13
0x07 0x0069 Teclado F14 0x00b8 LLAVE_F14
0x07 0x006a Teclado F15 0x00b9 LLAVE_F15
0x07 0x006b Teclado F16 0x00ba LLAVE_F16
0x07 0x006c Teclado F17 0x00bb LLAVE_F17
0x07 0x006d Teclado F18 0x00bc LLAVE_F18
0x07 0x006e Teclado F19 0x00bd LLAVE_F19
0x07 0x006f Teclado F20 0x00be TECLA_F20
0x07 0x0070 Teclado F21 0x00bf LLAVE_F21
0x07 0x0071 Teclado F22 0x00c0 LLAVE_F22
0x07 0x0072 Teclado F23 0x00c1 LLAVE_F23
0x07 0x0073 Teclado F24 0x00c2 LLAVE_F24
0x07 0x0074 Ejecutar teclado 0x0086 TECLA_ABIERTA
0x07 0x0075 Ayuda del teclado 0x008a LLAVE_AYUDA
0x07 0x0076 Menú del teclado 0x0082 KEY_PROPS
0x07 0x0077 Seleccionar teclado 0x0084 LLAVE_FRONT
0x07 0x0078 Parada del teclado 0x0080 KEY_STOP 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x0079 Teclado otra vez 0x0081 CLAVE_OTRA VEZ
0x07 0x007a Deshacer teclado 0x0083 KEY_UNDO
0x07 0x007b Corte de teclado 0x0089 LLAVE_CUT
0x07 0x007c Copia de teclado 0x0085 LLAVE_COPIA
0x07 0x007d Pegar teclado 0x0087 KEY_PASTE
0x07 0x007e Buscar teclado 0x0088 KEY_FIND
0x07 0x007f Silenciar el 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 del teclado Bloqueo de mayúsculas
0x07 0x0083 Bloqueo del teclado Bloqueo numérico
0x07 0x0084 Bloqueo del teclado Bloqueo de desplazamiento
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 LLAVE_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 Internacional6 0x005f KEY_KPJPCOMMA
0x07 0x008d Teclado Internacional7
0x07 0x008e Teclado Internacional8
0x07 0x008f Teclado Internacional9
0x07 0x0090 Teclado IDIOMA1 0x007a KEY_HANGEUL
0x07 0x0091 Teclado LANG2 0x007b KEY_HANJA
0x07 0x0092 Teclado LANG3 0x005a CLAVE_KATAKANA
0x07 0x0093 Teclado LANG4 0x005b CLAVE_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 Teclado SysReq/Atención
0x07 0x009b Cancelar teclado
0x07 0x009c Borrar teclado
0x07 0x009d Teclado anterior
0x07 0x009e Retorno del teclado
0x07 0x009f Separador de teclado
0x07 0x00a0 Teclado fuera
0x07 0x00a1 Operador de teclado
0x07 0x00a2 Borrar teclado/Otra vez
0x07 0x00a3 Teclado CrSel/Accesorios
0x07 0x00a4 Teclado ExSel
0x07 0x00b0 Teclado 00
0x07 0x00b1 Teclado 000
0x07 0x00b2 Separador de miles
0x07 0x00b3 Separador decimal
0x07 0x00b4 Unidad monetaria
0x07 0x00b5 Subunidad monetaria
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 Pestaña del teclado
0x07 0x00bb 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 % del 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 Número de teclado
0x07 0x00cd Espacio del teclado
0x07 0x00ce Teclado @
0x07 0x00cf ¡Teclado!
0x07 0x00d0 Almacenamiento de memoria del teclado
0x07 0x00d1 Recuperación de memoria del teclado
0x07 0x00d2 Borrar memoria del teclado
0x07 0x00d3 Agregar memoria del teclado
0x07 0x00d4 Resta de memoria del teclado
0x07 0x00d5 Memoria del teclado multiplicada
0x07 0x00d6 División de memoria del teclado
0x07 0x00d7 Teclado +/-
0x07 0x00d8 Borrar teclado
0x07 0x00d9 Borrar entrada del teclado
0x07 0x00da Teclado binario
0x07 0x00db Teclado octal
0x07 0x00dc Teclado decimal
0x07 0x00dd Teclado hexadecimal
0x07 0x00e0 Control izquierdo del teclado 0x001d KEY_LEFTCTRL 3.0 0x0071 KEYCODE_CTRL_LEFT
0x07 0x00e1 Desplazamiento a la izquierda del teclado 0x002a KEY_LEFTSHIFT 1.6 0x003b KEYCODE_SHIFT_LEFT
0x07 0x00e2 Alt izquierdo 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 Desplazamiento a la derecha del teclado 0x0036 KEY_RIGHTSHIFT 1.6 0x003c KEYCODE_SHIFT_RIGHT
0x07 0x00e6 Teclado Alt derecho 0x0064 KEY_RIGHTALT 1.6 0x003a KEYCODE_ALT_RIGHT
0x07 0x00e7 GUI del teclado derecho 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 CLAVE_WWW 1.6 0x0040 CÓDIGO CLAVE_EXPLORADOR
0x07 0x00f1 0x009e KEY_BACK 1.6 0x0004 CÓDIGO CLAVE_VOLVER
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 CLAVE_EDITAR
0x07 0x00f8 0x008e KEY_SLEEP
0x07 0x00f9 0x0098 CLAVE_CAFÉ 4.0 0x001a KEYCODE_POWER
0x07 0x00fa 0x00ad KEY_REFRESH
0x07 0x00fb 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULADORA

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

Uso de HID Nombre de uso de HID LKC Nombre del código clave de Linux Versión AKC Nombre del código clave de Android Notas
0x01 0x0081 Apagado del sistema 0x0074 TECLA_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 aplicaciones del sistema
0x01 0x0087 Ayuda del menú del sistema
0x01 0x0088 Salir del menú del sistema
0x01 0x0089 Seleccionar menú del sistema
0x01 0x008a Menú del sistema derecho
0x01 0x008b Menú del sistema a la izquierda
0x01 0x008c Menú del sistema arriba
0x01 0x008d Menú del sistema hacia abajo
0x01 0x008e Reinicio en frío del sistema
0x01 0x008f Reinicio en caliente del sistema
0x01 0x00a0 Base del sistema
0x01 0x00a1 Desacoplar el sistema
0x01 0x00a2 Configuración del sistema
0x01 0x00a3 Rotura del sistema
0x01 0x00a4 Interrupción del depurador del sistema
0x01 0x00a5 Pausa de aplicación
0x01 0x00a6 Descanso del depurador de aplicaciones
0x01 0x00a7 Silenciar el altavoz del sistema
0x01 0x00a8 Hibernación del sistema
0x01 0x00b0 Inversión de visualización del sistema
0x01 0x00b1 Pantalla del sistema interna
0x01 0x00b2 Pantalla del sistema externa
0x01 0x00b3 El sistema muestra ambos
0x01 0x00b4 Pantalla del sistema dual
0x01 0x00b5 Alternar pantalla del sistema Int/Ext
0x01 0x00b6 Intercambio de pantalla del sistema Prim./Seg.
0x01 0x00b7 Pantalla del sistema LCD Escala automática

Página del consumidor HID (0x0c)

Uso de HID Nombre de uso de HID LKC Nombre del código clave de Linux Versión AKC Nombre del código clave de Android Notas
0x0c 0x0030 Fuerza
0x0c 0x0031 Reiniciar
0x0c 0x0032 Dormir
0x0c 0x0033 Dormir después
0x0c 0x0034 Modo de sueño 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x0c 0x0040 Menú 0x008b KEY_MENU 1.6 0x0052 KEYCODE_MENU
0x0c 0x0041 Selección de menú
0x0c 0x0042 Menú arriba
0x0c 0x0043 Menú abajo
0x0c 0x0044 Menú izquierda
0x0c 0x0045 Menú derecho 0x0181 LLAVE_DERECHA
0x0c 0x0046 Salir del menú
0x0c 0x0047 Aumento del valor del menú
0x0c 0x0048 Disminución del valor del menú
0x0c 0x0067 Alternar imagen en imagen 0x00ab KEYCODE_WINDOW Agregado en aosp/1365553
0x0c 0x0069 Botón de menú rojo 0x18e LLAVE_RED 0x00b7 KEYCODE_PROG_RED Agregado en aosp/1388616
0x0c 0x006a Botón de menú verde 0x18f LLAVE_VERDE 0x00b8 KEYCODE_PROG_GREEN Agregado en aosp/1388616
0x0c 0x006b Botón de menú azul 0x191 LLAVE_AZUL 0x00ba KEYCODE_PROG_BLUE Agregado en aosp/1388616
0x0c 0x006c Botón de menú amarillo 0x190 CLAVE_AMARILLO 0x00b9 KEYCODE_PROG_AMARILLO Agregado en aosp/1388616
0x0c 0x0081 Asignar selección
0x0c 0x0082 Modo Paso
0x0c 0x0083 Recordar el último 0x0195 CLAVE_ÚLTIMA 0xe5 KEYCODE_LAST_CHANNEL Agregado en aosp/1365551
0x0c 0x0084 Ingresar al canal
0x0c 0x0085 Ordenar película
0x0c 0x0088 Computadora de selección de medios 0x0178 CLAVE_PC
0x0c 0x0089 Seleccionar medios TV 0x0179 CLAVE_TV 3.0 0x00aa CÓDIGO CLAVE_TV
0x0c 0x008a Seleccionar medio WWW 0x0096 CLAVE_WWW 1.6 0x0040 CÓDIGO CLAVE_EXPLORADOR
0x0c 0x008b Seleccionar medio DVD 0x0185 LLAVE_DVD
0x0c 0x008c Teléfono de selección de medios 0x00a9 LLAVE_TELÉFONO 3.0 0x0005 CÓDIGO CLAVE_LLAMADA
0x0c 0x008d Guía de programas de selección de medios 0x016a LLAVE_PROGRAMA 3.0 0x00ac KEYCODE_GUIDE
0x0c 0x008e Videoteléfono con selección de medios 0x01a0 LLAVE_VIDEOTELÉFONO
0x0c 0x008f Juegos de selección de medios 0x01a1 JUEGOS CLAVE
0x0c 0x0090 Mensajes de selección de medios 0x018c LLAVE_MEMO
0x0c 0x0091 CD de selección de medios 0x017f LLAVE_CD
0x0c 0x0092 VCR de selección de medios 0x017b LLAVE_VCR
0x0c 0x0093 Sintonizador de selección de medios 0x0182 KEY_TUNER
0x0c 0x0094 Abandonar 0x00ae TECLA_SALIR
0x0c 0x0095 Ayuda 0x008a LLAVE_AYUDA
0x0c 0x0096 Cinta de selección de medios 0x0180 LLAVE_TAPE
0x0c 0x0097 Cable de selección de medios 0x017a CLAVE_TV2
0x0c 0x0098 Satélite de selección de medios 0x017d LLAVE_SAT
0x0c 0x0099 Seguridad de selección de medios
0x0c 0x009a Inicio de selección de medios 0x016e LLAVE_PVR 3.0 0x00ad CÓDIGO CLAVE_DVR
0x0c 0x0061 Subtítulos 0x0172 CLAVE_SUBTITLE 0x00af KEYCODE_CAPTIONS Agregado 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 Selección de medios SAP
0x0c 0x00a0 Videograbadora Plus 0x017c LLAVE_VCR2
0x0c 0x00a1 Una vez
0x0c 0x00a2 A diario
0x0c 0x00a3 Semanalmente
0x0c 0x00a4 Mensual
0x0c 0x00b0 Jugar 0x00cf KEY_PLAY 3.0 0x007e KEYCODE_MEDIA_PLAY
0x0c 0x00b1 Pausa 0x0077 TECLA_PAUSA 3.0 0x0079 KEYCODE_BREAK
0x0c 0x00b2 Registro 0x00a7 KEY_RECORD 3.0 0x0082 KEYCODE_MEDIA_RECORD
0x0c 0x00b3 Avance rápido 0x00d0 KEY_FASTFORWARD 3.0 0x005a KEYCODE_MEDIA_FAST_FORWARD
0x0c 0x00b4 Rebobinar 0x00a8 KEY_REWIND 3.0 0x0059 KEYCODE_MEDIA_REWIND
0x0c 0x00b5 Escanear la siguiente pista 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 Seleccionar disco
0x0c 0x00bb Ingresar disco
0x0c 0x00bc Repetir 0x01b7 KEY_MEDIA_REPEAT
0x0c 0x00be Seguimiento normal
0x0c 0x00c0 Cuadro hacia adelante
0x0c 0x00c1 Marco trasero
0x0c 0x00c2 Marca
0x0c 0x00c3 Borrar marca
0x0c 0x00c4 Repetir desde marca
0x0c 0x00c5 Volver a marcar
0x0c 0x00c6 Buscar marca hacia adelante
0x0c 0x00c7 Marca de búsqueda hacia atrás
0x0c 0x00c8 Reinicio del contador
0x0c 0x00c9 Mostrar contador
0x0c 0x00ca Incremento de seguimiento
0x0c 0x00cb Decremento de seguimiento
0x0c 0x00cc Detener / Expulsar
0x0c 0x00cd Reproducir pausar 0x00a4 KEY_PLAYPAUSE 3.0 0x0055 KEYCODE_MEDIA_PLAY_PAUSE
0x0c 0x00ce Reproducir / Saltar
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 Incremento de volumen 0x0073 KEY_VOLUMEUP 1.6 0x0018 KEYCODE_VOLUME_UP
0x0c 0x00ea Disminución de volumen 0x0072 KEY_VOLUMEDOWN 1.6 0x0019 KEYCODE_VOLUME_DOWN
0x0c 0x0173 Incremento de audio alternativo 0x00de KEYCODE_MEDIA_AUDIO_TRACK Agregado en aosp/1365554
0x0c 0x0181 Configuración del botón de inicio AL. Herramienta
0x0c 0x0182 Configuración del botón programable AL. 0x009c KEY_BOOKMARKS 3.0 0x00ae KEYCODE_BOOKMARK
0x0c 0x0183 Configuración de control del consumidor AL. 0x00ab CLAVE_CONFIG 4.0.3 0x00d1 CÓDIGO CLAVE_MÚSICA
0x0c 0x0184 Procesador de textos AL 0x01a5 KEY_WORDPROCESSOR
0x0c 0x0185 Editor de texto AL 0x01a6 LLAVE_EDITOR
0x0c 0x0186 Hoja de cálculo AL 0x01a7 KEY_HOJA DE CALCULO
0x0c 0x0187 Editor de gráficos AL 0x01a8 KEY_GRAPHICSEDITOR
0x0c 0x0188 Aplicación de presentación AL 0x01a9 LLAVE_PRESENTACIÓN
0x0c 0x0189 Aplicación de base de datos AL 0x01aa BASE_DATOS CLAVE
0x0c 0x018a Lector de correo electrónico AL 0x009b LLAVE_MAIL 1.6 0x0041 KEYCODE_ENVELOPE
0x0c 0x018b Lector de noticias AL 0x01ab NOTICIAS CLAVE
0x0c 0x018c Correo de voz AL 0x01ac CLAVE_MAIL DE VOZ
0x0c 0x018d Contactos AL/Libreta de direcciones 0x01ad KEY_ADDRESSBOOK 4.0.3 0x00cf CÓDIGO CLAVE_CONTACTOS
0x0c 0x018e Calendario / Horario AL 0x018d KEY_CALENDAR 4.0.3 0x00d0 KEYCODE_CALENDAR
0x0c 0x018f Gerente de Tareas / Proyectos AL
0x0c 0x0190 Registro AL/Diario/Tarjeta de horas
0x0c 0x0191 AL Chequera / Finanzas 0x00db CLAVE_FINANZAS
0x0c 0x0192 Calculadora AL 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULADORA
0x0c 0x0193 Captura/reproducción AL A/V
0x0c 0x0194 Navegador de máquina local AL 0x0090 ARCHIVO DE CLAVE
0x0c 0x0195 AL Navegador LAN/WAN
0x0c 0x0196 Navegador de Internet AL 0x0096 CLAVE_WWW 1.6 0x0040 CÓDIGO CLAVE_EXPLORADOR
0x0c 0x0197 Conexión de red remota/ISP AL
0x0c 0x0198 Conferencia de la red AL
0x0c 0x0199 Chat de la red AL 0x00d8 LLAVE_CHAT
0x0c 0x019a AL Telefonía / Marcador
0x0c 0x019b Inicio de sesión AL
0x0c 0x019c Cerrar sesión en AL 0x01b1 KEY_LOGOFF
0x0c 0x019d AL Iniciar sesión / Cerrar sesión
0x0c 0x019e Bloqueo de terminal AL/salvapantallas 0x0098 CLAVE_CAFÉ 4.0 0x001a KEYCODE_POWER
0x0c 0x019f Panel de control AL
0x0c 0x01a0 Procesador de línea de comando AL / Ejecutar
0x0c 0x01a1 Administrador de procesos/tareas AL
0x0c 0x01a2 AL Seleccionar tarea/aplicación
0x0c 0x01a3 AL Siguiente tarea/aplicación
0x0c 0x01a4 AL Tarea/Solicitud Anterior
0x0c 0x01a5 Tarea/aplicación de parada preventiva AL.
0x0c 0x01a6 Centro de ayuda integrado AL 0x008a LLAVE_AYUDA
0x0c 0x01a7 Documentos AL 0x00eb DOCUMENTOS CLAVE
0x0c 0x01a8 AL Tesauro
0x0c 0x01a9 Diccionario AL
0x0c 0x01aa Escritorio AL
0x0c 0x01ab Revisión ortográfica AL 0x01b0 KEY_SPELLCHECK
0x0c 0x01ac Revisión gramatical AL
0x0c 0x01ad Estado inalámbrico AL
0x0c 0x01ae Distribución del teclado AL
0x0c 0x01af Protección contra virus AL
0x0c 0x01b0 Cifrado AL
0x0c 0x01b1 Protector de pantalla AL
0x0c 0x01b2 Alarmas AL
0x0c 0x01b3 AL Reloj
0x0c 0x01b4 Explorador de archivos AL
0x0c 0x01b5 Estado de energía AL
0x0c 0x01b6 Navegador de imágenes AL 0x00e2 KEY_MEDIA 3.0 0x004f KEYCODE_HEADSEHOOK
0x0c 0x01b7 Navegador de audio AL 0x00d5 SONIDO CLAVE 4.0.3 0x00d1 CÓDIGO CLAVE_MÚSICA
0x0c 0x01b8 Navegador de películas AL
0x0c 0x01b9 Gerente de Derechos Digitales AL
0x0c 0x01ba Billetera digital AL
0x0c 0x01bc Mensajería instantánea AL 0x01ae KEY_MESSENGER
0x0c 0x01bd Navegador de sugerencias/características OEM de AL 0x0166 INFORMACIÓN_CLAVE
0x0c 0x01be Ayuda OEM de AL
0x0c 0x01bf Comunidad en línea AL
0x0c 0x01c0 Navegador de contenidos de AL Entertainment
0x0c 0x01c1 Navegador de compras en línea AL
0x0c 0x01c2 Información/Ayuda de AL SmartCard
0x0c 0x01c3 Navegador de mercados/finanzas AL
0x0c 0x01c4 Navegador de noticias AL Customized Corp.
0x0c 0x01c5 Navegador de actividades en línea AL
0x0c 0x01c6 Navegador de búsqueda/investigación AL
0x0c 0x01c7 Reproductor de audio AL
0x0c 0x0201 Aire acondicionado nuevo 0x00b5 CLAVE_NUEVA
0x0c 0x0202 CA abierta 0x0086 TECLA_ABIERTA
0x0c 0x0203 Cierre de aire acondicionado 0x00ce KEY_CLOSE
0x0c 0x0204 Salida de CA 0x00ae TECLA_SALIR
0x0c 0x0205 Maximizar CA
0x0c 0x0206 AC Minimizar
0x0c 0x0207 Ahorro de CA 0x00ea LLAVE_GUARDAR
0x0c 0x0208 Impresión de CA 0x00d2 Key_print
0x0c 0x0209 Propiedades de CA 0x0082 Key_props
0x0c 0x021a AC deshacer 0x0083 KEY_UNDO
0x0c 0x021b Copia 0x0085 Key_copy
0x0c 0x021c Corte de aire acondicionado 0x0089 Key_cut
0x0c 0x021d Pasta de aire acondicionado 0x0087 Key_paste
0x0c 0x021e AC Seleccione todo
0x0c 0x021f AC encontrar 0x0088 Key_find
0x0c 0x0220 AC Buscar y reemplazar
0x0c 0x0221 Búsqueda de CA 0x00d9 Key_search 1.6 0x0054 Keycode_search
0x0c 0x0222 AC va a 0x0162 KEY_GOTO
0x0c 0x0223 Casa de CA 0x00ac Key_homepage 3.0 0x0003 Keycode_home
0x0c 0x0224 AC Back 0x009e Key_back 1.6 0x0004 Keycode_back
0x0c 0x0225 AC delantero 0x009f Key_forward 3.0 0x007d Keycode_forward
0x0c 0x0226 AC Stop 0x0080 Key_stop 3.0 0x0056 Keycode_media_stop
0x0c 0x0227 Actualización de CA 0x00ad Key_refresh
0x0c 0x0228 AC Enlace anterior
0x0c 0x0229 AC Siguiente enlace
0x0c 0x022a Marcadores de CA 0x009c Key_bookmarks 3.0 0x00ae Keycode_bookmark
0x0c 0x022b Historia de CA
0x0c 0x022c Suscripciones de CA
0x0c 0x022d AC Zoom en 0x01a2 Key_zoomin
0x0c 0x022e AC Zoom Out 0x01a3 KEY_ZOOMOUT
0x0c 0x022f Zoom de CA 0x01a4 Key_zoomreset 2
0x0c 0x0230 Vista de pantalla completa de CA
0x0c 0x0231 AC Vista normal
0x0c 0x0232 Vista de CA Toggle
0x0c 0x0233 AC desplazarse hacia arriba 0x00b1 Key_scrollup 3.0 0x005c Keycode_page_up
0x0c 0x0234 AC desplazarse hacia abajo 0x00b2 KEY_SCROLLDOWN 3.0 0x005d Keycode_page_down
0x0c 0x0236 AC Pan a la izquierda
0x0c 0x0237 Pan de aire acondicionado a la derecha
0x0c 0x0239 AC nueva ventana
0x0c 0x023a Azulejos acuáticos horizontalmente
0x0c 0x023b Azulejos de CA verticalmente
0x0c 0x023c Formato de CA
0x0c 0x023d AC Editar
0x0c 0x023e AC audaz
0x0c 0x023f AC Entendido
0x0c 0x0240 AC subrayado
0x0c 0x0241 AC Strikethrough
0x0c 0x0242 Subíndice de CA
0x0c 0x0243 Superscript de CA
0x0c 0x0244 AC todas las tapas
0x0c 0x0245 AC girar
0x0c 0x0246 Respensar AC Resulte
0x0c 0x0247 AC Flip Horizontal
0x0c 0x0248 AC Flip Vertical
0x0c 0x0249 AC Mirror horizontal
0x0c 0x024a AC Mirror Vertical
0x0c 0x024b AC Font Seleccione
0x0c 0x024c Color de fuente de CA
0x0c 0x024d Tamaño de fuente de CA
0x0c 0x024e AC Justify Left
0x0c 0x024f AC Justify Center H
0x0c 0x0250 AC justifica a la derecha
0x0c 0x0251 AC Justify Block H
0x0c 0x0252 AC Justify Top
0x0c 0x0253 AC Justify Center V
0x0c 0x0254 AC Justify Bottom
0x0c 0x0255 AC Justify Block V
0x0c 0x0256 Disminución del sangría de CA
0x0c 0x0257 Aumento de sangría de CA
0x0c 0x0258 Lista numerada de AC
0x0c 0x0259 Numeración de reinicio de CA
0x0c 0x025a Lista de balas AC
0x0c 0x025b AC promover
0x0c 0x025c AC de frase
0x0c 0x025d AC Sí
0x0c 0x025e AC No
0x0c 0x025f AC Cancelar 0x00df Key_cancel
0x0c 0x0260 Catálogo de AC
0x0c 0x0261 Compra / pago de CA
0x0c 0x0262 AC agregar al carrito
0x0c 0x0263 AC expandir
0x0c 0x0264 AC expandir todo
0x0c 0x0265 Colapso de CA
0x0c 0x0266 Colapso de CA a todos
0x0c 0x0267 Vista previa de impresión de CA
0x0c 0x0268 Pasta de aire acondicionado especial
0x0c 0x0269 Modo de inserción de CA
0x0c 0x026a AC Eliminar
0x0c 0x026b Un reloj
0x0c 0x026c Desbloqueo de CA
0x0c 0x026d AC Proteger
0x0c 0x026e AC desprotectando
0x0c 0x026f AC Adjunte Comentario
0x0c 0x0270 COMENTARIO DELETE DE AC
0x0c 0x0271 Comentario de vista AC
0x0c 0x0272 Palabra de selección de CA
0x0c 0x0273 Oración de selección de CA
0x0c 0x0274 AC Seleccionar párrafo
0x0c 0x0275 Columna de selección de CA
0x0c 0x0276 Fila de selección de CA
0x0c 0x0277 Tabla de selección de CA
0x0c 0x0278 Objeto de selección de CA
0x0c 0x0279 AC REDO / Repetir 0x00b6 KEY_REDO
0x0c 0x027a Clasificación de CA
0x0c 0x027b AC clasifica ascendente
0x0c 0x027c AC Sort Descendiendo
0x0c 0x027d Filtro de CA
0x0c 0x027e Reloj de ajuste de aire acondicionado
0x0c 0x027f Reloj de vista de aire acondicionado
0x0c 0x0280 Zona horaria de selección de CA
0x0c 0x0281 AC Editar zonas horarias
0x0c 0x0282 Alarma establecida de CA
0x0c 0x0283 Alarma transparente de CA
0x0c 0x0284 Alarma de repetición de CA
0x0c 0x0285 Alarma de reinicio de CA
0x0c 0x0286 AC Sincronize
0x0c 0x0287 AC enviar/recibir
0x0c 0x0288 AC Enviar a
0x0c 0x0289 Respuesta de AC 0x00e8 KEY_REPLY
0x0c 0x028a AC responde a todos
0x0c 0x028b AC Forward MSG 0x00e9 Key_forwardmail
0x0c 0x028c Envío 0x00e7 Key_send
0x0c 0x028d AC Adjuntar archivo
0x0c 0x028e AC Subiendo
0x0c 0x028f Descarga de CA (Guardar Target AS)
0x0c 0x0290 Borders de acompañamiento de AC
0x0c 0x0291 Fila de inserción de CA
0x0c 0x0292 Columna de inserción de CA
0x0c 0x0293 Archivo de inserción de CA
0x0c 0x0294 Imagen de inserción de CA
0x0c 0x0295 Objeto de inserción de CA
0x0c 0x0296 Símbolo de inserción de CA
0x0c 0x0297 AC Guardar y cerrar
0x0c 0x0298 AC Cambiar el nombre
0x0c 0x0299 AC Merge
0x0c 0x029a División de CA
0x0c 0x029b AC distribuye horizontalmente
0x0c 0x029c AC distribuye verticalmente

Asignaciones no escondidas adicionales

Estas asignaciones describen funciones que no aparecen en HID, sino para las cuales existen códigos de claves Linux.

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

Legacy Keys sin apoyo

Estas asignaciones aparecieron en versiones anteriores de Android, pero eran inconsistentes con los códigos de claves Linux HID o usados ​​no estándar. Ya no son apoyados.

LKC Nombre de código de clave Linux Versión AKC Nombre de código 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_headsetook 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 teclas de Android asociado con las teclas alfanuméricas y simbólicas comunes puede variar según el diseño y el lenguaje del teclado. Por razones históricas, los códigos de escaneo físico y los usos de HID asociados con las teclas en un teclado a menudo se definen posicionalmente a pesar de que 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 superior izquierda está etiquetada Q. En un teclado francés (Azerty), la tecla en la misma posición está etiquetada A. A pesar de la etiqueta, en ambos teclados, la tecla alfabética superior izquierda se hace referencia utilizando el uso de HID 0x07 0x0014 que se asigna al código de clave Linux Key_q.

    Cuando Android se configura con un diseño de teclado en inglés de EE. UU., El código de tecla Linux Key_Q se asignará al código de tecla de Android KeyCode_Q 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 Linux Key_Q se asignará al código de teclas de Android, KeyCode_A y producirá los caracteres 'A' y 'A'.

    El código de la tecla Android generalmente refleja la interpretación específica del lenguaje de la clave, por lo que se puede usar un código de clave Android diferente para diferentes idiomas.

  2. 0x0c 0x022f AC Zoom se define en el HID como un control lineal, pero el núcleo 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 clave más simples, pero se envían con el bit de meta estado META_FUNCTION establecido en verdadero.

  4. Antes del Sandwich 4.0 de Android Ice Cream, el diseño de clave predeterminado contenía asignaciones para algunos códigos de clave adicionales que no se definieron en los encabezados del kernel de Linux. Desde entonces, estas asignaciones se han eliminado porque desde entonces a estos códigos clave previamente indefinidos se han asignado diferentes significados en versiones más recientes del núcleo de Linux.

Fuentes

  1. Tablas de uso de USB HID V1.12
  2. Linux 2.6.39 Kernel: incluir/linux/input.h, controladores/hid/hid-input.c
  3. Android ICS: Qwerty.kl, Generic.KL, KeyEvent.java