Dispositivos com teclado

O Android oferece suporte a vários dispositivos de teclado, incluindo funções especiais teclados (controles de volume e liga/desliga), teclados QWERTY compactos incorporados, e teclados externos completos no estilo PC.

Este documento descreve apenas teclados físicos. Consulte o SDK do Android para ver informações sobre teclados de software (Editores de método de entrada).

Classificação do teclado

Um dispositivo de entrada será classificado como teclado se uma das seguintes opções: condições são mantidas:

  • O dispositivo de entrada informa a presença de códigos de teclas do Linux usados em teclados. incluindo de 0 a 0xff ou de KEY_OK a KEY_MAX.

  • O dispositivo de entrada informa a presença de códigos de teclas do Linux usados em joysticks. e gamepads incluindo de BTN_0 a BTN_9, BTN_TRIGGER a BTN_DEAD, ou BTN_A a BTN_THUMBR.

Atualmente, os joysticks são classificados como teclados porque os botões deles são informados por eventos EV_KEY da mesma forma que as teclas do teclado. Assim, joysticks e gamepads também usam os principais arquivos de mapa para configuração.

Depois que um dispositivo de entrada for classificado como teclado, o sistema carregará o arquivo de configuração do dispositivo de entrada e layout do teclado.

Em seguida, o sistema tenta determinar outras características do dispositivo.

  • Se o dispositivo de entrada tiver alguma tecla mapeada para KEYCODE_Q, o considera-se que o dispositivo tem um teclado alfabético (e não numérico). O recurso do teclado alfabético é informado no recurso Configuration como KEYBOARD_QWERTY.

  • Se o dispositivo de entrada tiver alguma tecla mapeada para KEYCODE_DPAD_UP: KEYCODE_DPAD_DOWN, KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHT e KEYCODE_DPAD_CENTER (todos precisam estar presentes), então o dispositivo é considerado ter um teclado direcional. O recurso do teclado direcional é informado no recurso Configuration. como NAVIGATION_DPAD.

  • Se o dispositivo de entrada tiver alguma tecla mapeada para KEYCODE_BUTTON_A ou outras teclas relacionadas ao gamepad, o dispositivo será considerado como tendo um gamepad.

Requisitos do driver do teclado

  1. Os drivers de teclado só devem registrar códigos de teclas para as teclas que suporte de verdade. O registro de códigos de chave excedentes pode confundir o dispositivo algoritmo de classificação, ou fazer com que o sistema detecte incorretamente as capacidades de teclado compatíveis do dispositivo.

  2. Os drivers do teclado precisam usar EV_KEY para informar pressionamentos de tecla usando um valor. de 0 para indicar que uma chave é liberada, um valor de 1 para indicar que uma tecla é pressionada e um valor maior ou igual a 2 para indicar que a chave é repetida automaticamente.

  3. O Android executa a própria repetição de teclado. Funcionalidade de repetição automática deve ser desativado no driver.

  4. Os drivers do teclado podem indicar o uso de HID ou a verificação de baixo nível código enviando EV_MSC com MSC_SCANCODE e um valor indicando o uso ou ler o código quando a tecla for pressionada. No momento, essas informações não estão usados pelo Android.

  5. Os drivers de teclado precisam oferecer suporte à configuração de estados do LED quando EV_LED for gravado. ao dispositivo. O driver do hid-input processa isso automaticamente. No momento em que este artigo foi escrito, o Android usa LED_CAPSLOCK, LED_SCROLLLOCK. e LED_NUMLOCK. Esses LEDs só precisam de suporte quando o teclado tem as luzes indicadoras associadas.

  6. Drivers de teclado para teclados incorporados (por exemplo, usando uma matriz GPIO) envie eventos EV_KEY com um valor de 0 para todas as chaves que ainda são pressionados quando o dispositivo está em modo de suspensão. Caso contrário, as chaves poderão travadas e repetem automaticamente para sempre.

Operação do teclado

Confira a seguir um breve resumo da operação do teclado no Android.

  1. O EventHub lê eventos brutos do driver evdev e mapeia códigos de tecla do Linux (também chamados de códigos de verificação) nos códigos de tecla do Android usando o mapa de layout de teclas do teclado.

  2. O InputReader consome os eventos brutos e atualiza o estado da tecla meta. Por exemplo, se a tecla shift esquerda for pressionada ou solta, o leitor vai defina ou redefina os bits META_SHIFT_LEFT_ON e META_SHIFT_ON adequadamente.

  3. O InputReader notifica o InputDispatcher sobre o evento principal.

  4. O InputDispatcher pergunta ao WindowManagerPolicy o que fazer com a chave. evento chamando WindowManagerPolicy.interceptKeyBeforeQueueing. Esse método faz parte de um caminho crítico responsável por despertar o dispositivo quando algumas teclas são pressionadas. O EventHub mantém um wake lock de maneira eficaz. nesse caminho crítico para garantir que ele seja executado até a conclusão.

  5. Se um InputFilter estiver em uso no momento, o InputDispatcher concederá a ele um chance de consumir ou transformar a chave. O InputFilter pode ser usado para implementar políticas de acessibilidade de baixo nível para todo o sistema.

  6. O InputDispatcher enfileira a chave para processamento na linha de execução de envio.

  7. Quando o InputDispatcher retira a chave da fila, ele fornece ao WindowManagerPolicy uma segunda chance de interceptar o evento de tecla chamando WindowManagerPolicy.interceptKeyBeforeDispatching Esse método lida com o sistema atalhos de teclado e outras funções.

  8. Em seguida, o InputDispatcher identifica o destino do evento principal (a janela em foco). e espera até que elas fiquem prontas. Depois, o InputDispatcher entrega o evento de tecla ao aplicativo.

  9. Dentro do aplicativo, o evento de tecla se propaga pela hierarquia de visualização até a visualização focada para envio de chaves pré-IME.

  10. Se o evento principal não for manipulado no envio do pré-IME e um IME estiver em uso, o é entregue ao IME.

  11. Se o evento principal não for consumido pelo IME, ele será propagado pela hierarquia de visualizações até a visualização em foco para envio de teclas padrão.

  12. O aplicativo informa ao InputDispatcher se a chave evento for consumido. Se o evento não foi consumido, o InputDispatcher chama WindowManagerPolicy.dispatchUnhandledKey para aplicar "substituto". do seu modelo. Dependendo da ação substituta, o ciclo de envio do evento principal pode ser reiniciado. usando um código de tecla diferente. Por exemplo, se um aplicativo não lida KEYCODE_ESCAPE, o sistema poderá reenviar o evento de tecla como KEYCODE_BACK.

Configuração do teclado

O comportamento do teclado é determinado pelo layout das teclas, pelo caractere de tecla mapa e configuração do dispositivo de entrada.

Consulte as seções a seguir para mais detalhes sobre os arquivos que participam da configuração do teclado:

Propriedades

As seguintes propriedades de configuração do dispositivo de entrada são usadas para teclados.

teclado.layout

Definição:keyboard.layout = <name>

Especifica o nome do arquivo de layout de chave associado ao dispositivo de entrada. excluindo a extensão .kl. Se esse arquivo não for encontrado, o sistema de entrada usará o layout de teclas padrão.

Os espaços no nome são convertidos em sublinhados durante a pesquisa.

Consulte a documentação do arquivo de layout principal para mais detalhes.

teclado.characterMap

Definição:keyboard.characterMap = <name>

Especifica o nome do arquivo de mapeamento de caracteres principal associado ao dispositivo de entrada. excluindo a extensão .kcm. Se esse arquivo não for encontrado, o sistema de entrada usará o mapa padrão de caracteres de tecla.

Os espaços no nome são convertidos em sublinhados durante a pesquisa.

Consulte a documentação do arquivo de mapeamento de caracteres de teclas para mais detalhes.

teclado.orientationAware

Definição:keyboard.orientationAware = 0 | 1

Especifica se o teclado deve reagir às mudanças de orientação da tela.

  • Se o valor for 1, as teclas do teclado direcional serão giradas quando o mudanças de orientação da tela associadas.

  • Se o valor for 0, o teclado estará imune a mudanças de orientação de exibição.

O valor padrão é 0.

O reconhecimento de orientação é usado para oferecer suporte à rotação das teclas do teclado direcionais, como no Motorola Droid. Por exemplo, quando o dispositivo é girado 90 graus no sentido horário a partir da orientação natural, KEYCODE_DPAD_UP é remapeado para produzir KEYCODE_DPAD_RIGHT desde o início a chave acaba apontando "direita" quando o dispositivo é mantido nessa orientação.

teclado.integrado

Definição:keyboard.builtIn = 0 | 1

Especifica se o teclado é integrado (fisicamente conectado) teclado.

O valor padrão será 1 se o nome do dispositivo terminar com -keypad. Caso contrário, será 0.

O teclado integrado sempre recebe o ID de dispositivo 0. Outros teclados que não são integrados recebem IDs exclusivos de dispositivo diferentes de zero.

Usar o ID 0 para o teclado integrado é importante para manter compatibilidade com o campo KeyCharacterMap.BUILT_IN_KEYBOARD, que especifica o ID do teclado integrado e tem um valor de 0. Este campo foi obsoleto na API, mas ele ainda pode ser usado por aplicativos mais antigos.

Um teclado de função especial (cujo mapa de caracteres de teclas especifica um tipo de SPECIAL_FUNCTION) nunca será registrado como o teclado integrado, seja qual for a configuração dessa propriedade. Isso ocorre porque uma função especial o teclado não se destina, por definição, à digitação para fins gerais.

Exemplos de configuração

# 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

Observações de compatibilidade

Antes do Honeycomb, o mapeador de entrada de teclado não usava propriedades de configuração. Consideramos que todos os teclados estavam fisicamente conectados e têm reconhecimento de orientação. O padrão O layout de teclas e o mapa de caracteres das teclas foram nomeados como qwerty em vez de Generic. A chave o formato do mapa de caracteres também era muito diferente, e o framework não oferecia Teclados completos ou teclados externos, como o de PC.

Ao fazer upgrade dos dispositivos para o Honeycomb, crie ou atualize os e os arquivos de mapeamento de chaves.

Usos de HID, códigos de chaves do Linux e do Android

O sistema faz referência às chaves usando vários identificadores diferentes, dependendo do camada de abstração.

Para dispositivos HID, cada chave tem um uso de HID associado. O hid-input do Linux e drivers de HID específicos do dispositivo e do fornecedor relacionado são responsáveis para analisar relatórios de HID e mapear usos de HID para códigos de chave do Linux.

Como o Android lê eventos EV_KEY do kernel do Linux, ele traduz cada Código de tecla do Linux no código de tecla correspondente do Android, de acordo com a do arquivo de layout de teclas do dispositivo.

Quando o evento de tecla é enviado para um aplicativo, o android.view.KeyEvent informa o código de chave do Linux como o valor de getScanCode() e a Código de chave do Android como o valor de getKeyCode(). Para os fins do framework, apenas o valor de getKeyCode() é importante.

Observe que as informações de uso de HID não são usadas pelo próprio Android ou passados para os aplicativos.

Tabelas de código

As tabelas a seguir mostram como o uso de HIDs, os códigos de chaves do Linux e o uso do Android são relacionados entre si.

A coluna LKC especifica o código de chave do Linux em hexadecimal.

A coluna AKC especifica o código de chave do Android em hexadecimal.

A coluna Observações se refere às observações postadas após a tabela.

A coluna "Versão" especifica a primeira versão da plataforma Android. incluir essa chave em seu mapa de chaves padrão. Várias linhas são mostrado nos casos em que o mapa de teclas padrão é alterado entre as versões. A versão mais antiga indicada é a 1.6.

  • No Gingerbread (2.3) e versões anteriores, o mapa de teclas padrão era qwerty.kl: Este mapa de chave foi destinado somente para uso com o Android e não foi criado para dar suporte a regras e teclados externos. No entanto, alguns OEMs adicionaram Bluetooth suporte a teclado na plataforma e dependia do qwerty.kl para fornecer os mapeamentos de teclado necessários. Consequentemente, mapeamentos mais antigos podem ser interessantes para OEMs que estejam criando periféricos específicos para esses dispositivos. Observe que os mapeamentos são substancialmente diferentes das atuais, especialmente em relação ao tratamento da chave HOME. É recomendado que todos os novos periféricos sejam desenvolvidos de acordo com o Honeycomb ou outros mapas de teclas recentes (por exemplo, HID padrão).

  • A partir do Honeycomb (3.0), o mapa de chaves padrão será Generic.kl. Esse mapa de teclas foi projetado para oferecer suporte a teclados completos no estilo PC. A maioria das funcionalidades dos teclados HID padrão vai funcionar da caixa.

O mapeamento de códigos de teclas pode variar entre as versões do kernel do Linux e do Android. Quando se sabe que ocorreram mudanças nos mapas de teclado padrão do Android, elas são indicadas na coluna da versão.

Drivers de HID e mapas de chaves específicos do dispositivo podem aplicar mapeamentos diferentes além das indicadas aqui.

Teclado HID e página do teclado (0x07)

Uso de HID Nome de uso do HID LKC Nome do código da chave do Linux Versão AKC Nome do código da chave do Android Observações
0x07 0x0001 Erro de teclado ao rolar
0x07 0x0002 Falha no POST do teclado
0x07 0x0003 Erro de teclado indefinido
0x07 0x0004 Teclados A e A 0x001e PRINCIPAL_A 1.6 0x001d CÓDIGO_CHAVE_A 1
0x07 0x0005 Teclados b e B 0x0030 CHAVE_B 1.6 0x001e CÓDIGO_CHAVE_B 1
0x07 0x0006 Teclados c e C 0x002e CHAVE_C 1.6 0x001f CÓDIGO_CHAVE 1
0x07 0x0007 Teclado d e D 0x0020 CHAVE_D 1.6 0x0020 CÓDIGO_DA_CHAVE 1
0x07 0x0008 Teclados e e E 0x0012 CHAVE_E 1.6 0x0021 CÓDIGO_CHAVE_E 1
0x07 0x0009 Teclado f e F 0x0021 CHAVE_F 1.6 0x0022 CÓDIGO_CHAVE_F 1
0x07 0x000a Teclados g e G 0x0022 CHAVE_G 1.6 0x0023 CÓDIGO_CHAVE_G 1
0x07 0x000b Teclado h e H 0x0023 CHAVE_H 1.6 0x0024 CÓDIGO_CHAVE_H 1
0x07 0x000c Teclado i e I 0x0017 CHAVE_I 1.6 0x0025 CÓDIGO_CHAVE_I 1
0x07 0x000d Teclados j e J 0x0024 CHAVE_J 1.6 0x0026 CÓDIGO_CHAVE_J 1
0x07 0x000e Teclados k e K 0x0025 KEY_K 1.6 0x0027 CÓDIGO_DA-CHAVE 1
0x07 0x000f Teclado l e L 0x0026 CHAVE_L 1.6 0x0028 CÓDIGO_CHAVE_L 1
0x07 0x0010 Teclado m e M 0x0032 CHAVE_M 1.6 0x0029 CÓDIGO_CHAVE_M 1
0x07 0x0011 Teclado n e N 0x0031 CHAVE_N 1.6 0x002a CÓDIGO_CHAVE_N 1
0x07 0x0012 Teclado O e O 0x0018 PRINCIPAL 1.6 0x002b CÓDIGO_CHAVE_O 1
0x07 0x0013 Teclado P e P 0x0019 CHAVE_P 1.6 0x002c CÓDIGO_CHAVE_P 1
0x07 0x0014 Q e Q do teclado 0x0010 PRINCIPAL_Q 1.6 0x002d CÓDIGO_CHAVE_Q 1
0x07 0x0015 Teclado R e R 0x0013 CHAVE_R 1.6 0x002e CÓDIGO_CHAVE_R 1
0x07 0x0016 Teclados (s e S) 0x001f PRINCIPAIS 1.6 0x002f CÓDIGOS_CHAVE_S 1
0x07 0x0017 Teclado t e T 0x0014 CHAVE_T 1.6 0x0030 CÓDIGO_CHAVE_T 1
0x07 0x0018 Teclado u e U 0x0016 KEY_U 1.6 0x0031 CÓDIGO_CHAVE_U 1
0x07 0x0019 Teclado v e V 0x002f CHAVE_V 1.6 0x0032 CÓDIGO_CHAVE_V 1
0x07 0x001a Teclado W e W 0x0011 KEY_W 1.6 0x0033 CÓDIGO_DE_CHAVE 1
0x07 0x001b Teclado X e X 0x002d CHAVE_X 1.6 0x0034 CÓDIGO_CHAVE_X 1
0x07 0x001c Teclado y e Y 0x0015 CHAVE_Y 1.6 0x0035 CÓDIGO_CHAVE_Y 1
0x07 0x001d Teclado Z e Z 0x002c CHAVE_Z 1.6 0x0036 CÓDIGO_CHAVE_Z 1
0x07 0x001e Teclado 1 e ! 0x0002 CHAVE_1 1.6 0x0008 CÓDIGO_CHAVE_1 1
0x07 0x001f Teclados 2 e @ 0x0003 CHAVE_2 1.6 0x0009 CÓDIGO_CHAVE_2 1
0x07 0x0020 Teclado 3 e # 0x0004 CHAVE_3 1.6 0x000a CÓDIGO_CHAVE_3 1
0x07 0x0021 Teclado 4 e $ 0x0005 CHAVE_4 1.6 0x000b CÓDIGO_CHAVE_4 1
0x07 0x0022 Teclado 5 e % 0x0006 CHAVE_5 1.6 0x000c CÓDIGO_CHAVE_5 1
0x07 0x0023 Teclado 6 e ^ 0x0007 CHAVE_6 1.6 0x000d CÓDIGO_CHAVE_6 1
0x07 0x0024 Teclado 7 e & 0x0008 CHAVE_7 1.6 0x000e CÓDIGO_CHAVE_7 1
0x07 0x0025 Teclado 8 e * 0x0009 CHAVE_8 1.6 0x000f CÓDIGO_CHAVE_8 1
0x07 0x0026 Teclado 9 e ( 0x000a CHAVE_9 1.6 0x0010 CÓDIGO_CHAVE_9 1
0x07 0x0027 Teclado 0 e ) 0x000b CHAVE_0 1.6 0x0007 CÓDIGO_CHAVE_0 1
0x07 0x0028 Retorno do teclado (ENTER) 0x001c INSERIR_CHAVE 1.6 0x0042 INSERIR CÓDIGO_CHAVE 1
0x07 0x0029 Teclado ESCAPE 0x0001 KEY_ESC 3.0 0x006f KEYCODE_ESCAPE
"" "" "" "" 2.3 0x0004 CÓDIGO_DE_PREFERÊNCIA
0x07 0x002a DELETE do teclado (Backspace) 0x000e KEY_BACKSPACE 1.6 0x0043 CÓDIGO_DE_CHAVE
0x07 0x002b Guia Teclado 0x000f GUIA_CHAVE 1.6 0x003d GUIA CÓDIGO_CHAVE
0x07 0x002c Barra de espaço do teclado 0x0039 ESPAÇO_CHAVE 1.6 0x003e ESPAÇO_CHAVE_CÓDIGO
0x07 0x002d Teclado - e _ 0x000c MINUTOS DE CHAVE 1.6 0x0045 KEYCODE_MINUS 1
0x07 0x002e Teclado = e + 0x000d PRINCIPAL_Igual 1.6 0x0046 CÓDIGO_DE_EQUALIDADES 1
0x07 0x002f Teclado [ e { 0x001a FREQUÊNCIA DE ESQUERDA 1.6 0x0047 KEYCODE_LEFT_BRACK 1
0x07 0x0030 Teclado ] e } 0x001b BRAÇO_DE_DIREITO 1.6 0x0048 INFORMAÇÕES DE CÓDIGOS_DIREITOS_DE_CHAVE 1
0x07 0x0031 Teclado \ e | 0x002b KEY_BACKSLASH 1.6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0032 Teclado externo aos EUA # e ~ 0x002b KEY_BACKSLASH 1.6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0033 Teclado ; e : 0x0027 SEMICOLO_CHAVE 1.6 0x004a CÓDIGO_SEMICOLON 1
0x07 0x0034 Teclado " e " 0x0028 PRINCIPAIS APOSTROPHAS 1.6 0x004b CÓDIGO_APOSTROPHE 1
0x07 0x0035 Teclado ` e ~ 0x0029 GRAVAÇÃO_PRINCIPAL 3.0 0x0044 KEYCODE_GRAVE 1
0x07 0x0036 Teclado e < 0x0033 COMUNICADOS PRINCIPAIS 1.6 0x0037 KEYCODE_COMMA 1
0x07 0x0037 Teclado . e > 0x0034 PONTO_CHAVE 1.6 0x0038 KEYCODE_PERIOD 1
0x07 0x0038 Teclado / e ? 0x0035 PRINCIPAIS_ANEXOS 1.6 0x004c KEYCODE_SLASH 1
0x07 0x0039 Teclado Caps Lock 0x003a LETRAS MAIÚSCULAS 3.0 0x0073 KEYCODE_CAPS_LOCK
0x07 0x003a Teclado F1 0x003b CHAVE_F1 3.0 0x0083 CÓDIGO_F1
"" "" "" "" 1.6 0x0052 MENU_DE_CHAVES
0x07 0x003b Teclado F2 0x003c CHAVE_F2 3.0 0x0084 CÓDIGO_F2
"" "" "" "" 1.6 0x0002 CÓDIGO_CHAVE_SOFT_DIREITA
0x07 0x003c Teclado F3 0x003d CHAVE_F3 3.0 0x0085 CÓDIGO_CHAVE_F3
"" "" "" "" 1.6 0x0005 KEYCODE_CALL
0x07 0x003d Teclado F4 0x003e CHAVE_F4 3.0 0x0086 CÓDIGO_CHAVE_F4
"" "" "" "" 1.6 0x0006 KEYCODE_ENDCALL
0x07 0x003e Teclado F5 0x003f CHAVE_F5 3.0 0x0087 CÓDIGO_CHAVE_F5
0x07 0x003f Teclado F6 0x0040 CHAVE_F6 3.0 0x0088 CÓDIGO_CHAVE_F6
0x07 0x0040 Teclado F7 0x0041 CHAVE_F7 3.0 0x0089 CÓDIGO_CHAVE_F7
0x07 0x0041 Teclado F8 0x0042 CHAVE_F8 3.0 0x008a CÓDIGO_CHAVE_F8
0x07 0x0042 Teclado F9 0x0043 CHAVE_F9 3.0 0x008b CÓDIGO_CHAVE_F9
0x07 0x0043 Teclado F10 0x0044 CHAVE_F10 3.0 0x008c CÓDIGO_CHAVE_F10
"" "" "" "" 2.3 0x0052 MENU_DE_CHAVES
0x07 0x0044 Teclado F11 0x0057 CHAVE_F11 3.0 0x008d CÓDIGO_F11
0x07 0x0045 Teclado F12 0x0058 CHAVE_F12 3.0 0x008e CÓDIGO_F12
0x07 0x0046 Tela de impressão do teclado 0x0063 PRINCIPAL_SYSRQ 3.0 0x0078 CÓDIGO_CHAVE_SYSRQ
0x07 0x0047 Bloqueio de rolagem do teclado 0x0046 KEY_SCROLLLOCK 3.0 0x0074 KEYCODE_SCROLL_LOCK
0x07 0x0048 Pausa do teclado 0x0077 PAUSA_PRINCIPAL 3.0 0x0079 KEYCODE_BREAK
0x07 0x0049 Inserir teclado 0x006e INSERIR CHAVE 3.0 0x007c INSERIR CÓDIGO_CHAVE
0x07 0x004a Página inicial do teclado 0x0066 PÁGINA INICIAL PRINCIPAL 3.0 0x007a KEYCODE_MOVE_HOME
"" "" "" "" 1.6 0x0003 PÁGINA INICIAL DO CÓDIGO DE CHAVE
0x07 0x004b Teclado Page Up 0x0068 PÁGINA INICIAL PRINCIPAL 3.0 0x005c CÓDIGO_DA_PÁGINA_UP
0x07 0x004c Excluir teclado para frente 0x006f EXCLUSÃO_PRINCIPAL 3.0 0x0070 KEYCODE_FORWARD_DEL
0x07 0x004d Fim do teclado 0x006b FIM_CHAVE 3.0 0x007b KEYCODE_MOVE_END
"" "" "" "" 1.6 0x0006 KEYCODE_ENDCALL
0x07 0x004e Teclado Page Down 0x006d PÁGINA_PRINCIPAL PARA BAIXO 3.0 0x005d CÓDIGO_DA_PÁGINA_BAIXO
0x07 0x004f Seta para a direita do teclado 0x006a DIREITA_CHAVE 1.6 0x0016 CÓDIGO_DA_DIREITA
0x07 0x0050 Seta para a esquerda do teclado 0x0069 ESQUERDA_CHAVE 1.6 0x0015 CÓDIGO_DA_ESQUERDA_DA_CHAVE
0x07 0x0051 Seta para baixo do teclado 0x006c KEY_DOWN 1.6 0x0014 KEYCODE_DPAD_DOWN
0x07 0x0052 Seta para cima do teclado 0x0067 CHAVE 1.6 0x0013 KEYCODE_DPAD_UP
0x07 0x0053 Teclado Num Lock e Clear 0x0045 KEY_NUMLOCK 3.0 0x008f KEYCODE_NUM_LOCK
0x07 0x0054 Teclado / 0x0062 PRINCIPAIS 3.0 0x009a KEYCODE_NUMPAD_DIVIDE
0x07 0x0055 Teclado * 0x0037 KEY_KPASTERISK 3.0 0x009b KEYCODE_NUMPAD_MULTIPLY
0x07 0x0056 Teclado - 0x004a PRINCIPAIS_KPMINUS 3.0 0x009c KEYCODE_NUMPAD_SUBTRACT
0x07 0x0057 Teclado + 0x004e CHAVE_KPPLUS 3.0 0x009d KEYCODE_NUMPAD_ADD
0x07 0x0058 Teclado ENTER 0x0060 KEY_KPENTER 3.0 0x00a0 KEYCODE_NUMPAD_ENTER
0x07 0x0059 Teclado 1 e fim 0x004f CHAVE_KP1 3.0 0x0091 CÓDIGO_NUMPAD_1
0x07 0x005a Teclado 2 e seta para baixo 0x0050 CHAVE_KP2 3.0 0x0092 CÓDIGO_NUMPAD_2
0x07 0x005b Teclado 3 e PageDn 0x0051 CHAVE_KP3 3.0 0x0093 CÓDIGO_NUMPAD_3
0x07 0x005c Teclado 4 e seta para a esquerda 0x004b CHAVE_KP4 3.0 0x0094 CÓDIGO_NUMPAD_4
0x07 0x005d Teclado 5 0x004c CHAVE_KP5 3.0 0x0095 CÓDIGO_NUMPAD_5
0x07 0x005e Teclado 6 e seta para a direita 0x004d CHAVE_KP6 3.0 0x0096 CÓDIGO_NUMPAD_6
0x07 0x005f Teclado 7 e Tela inicial 0x0047 CHAVE_KP7 3.0 0x0097 CÓDIGO_NUMPAD_7
0x07 0x0060 Teclado 8 e seta para cima 0x0048 CHAVE_KP8 3.0 0x0098 CÓDIGO_NUMPAD_8
0x07 0x0061 Teclado 9 e Page Up 0x0049 CHAVE_KP9 3.0 0x0099 CÓDIGO_NUMPAD_9
0x07 0x0062 Teclado 0 e Inserir 0x0052 CHAVE_KP0 3.0 0x0090 CÓDIGO_NUMPAD_0
0x07 0x0063 Teclado . e "Excluir" 0x0053 KEY_KPDOT 3.0 0x009e CÓDIGO_NUMPAD_DOT
0x07 0x0064 Teclado fora dos EUA \ e | 0x0056 KEY_102 4.0 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0065 Aplicativo de teclado 0x007f COMPOR_CHAVE 3.0 0x0052 MENU_DE_CHAVES
"" "" "" "" 1.6 0x0054 PESQUISA DE CÓDIGO_CHAVE
0x07 0x0066 Potência do teclado 0x0074 PRINCIPAL_POTÊNCIA 1.6 0x001a CÓDIGO_ENERGIA
0x07 0x0067 Teclado = 0x0075 KEY_KPEQUAL 3.0 0x00a1 CÓDIGO_CHAVE_NUMPAD_EQUALS
0x07 0x0068 Teclado F13 0x00b7 CHAVE_F13
0x07 0x0069 Teclado F14 0x00b8 CHAVE_F14
0x07 0x006a Teclado F15 0x00b9 CHAVE_F15
0x07 0x006b Teclado F16 0x00ba CHAVE_F16
0x07 0x006c Teclado F17 0x00bb CHAVE_F17
0x07 0x006d Teclado F18 0x00bc CHAVE_F18
0x07 0x006e Teclado F19 0x00bd CHAVE_F19
0x07 0x006f Teclado F20 0x00be CHAVE_F20
0x07 0x0070 Teclado F21 0x00bf CHAVE_F21
0x07 0x0071 Teclado F22 0x00c0 CHAVE_F22
0x07 0x0072 Teclado F23 0x00c1 CHAVE_F23
0x07 0x0073 Teclado F24 0x00c2 CHAVE_F24
0x07 0x0074 Execução do teclado 0x0086 ABERTURA PRINCIPAL
0x07 0x0075 Ajuda do teclado 0x008a AJUDA_PRINCIPAL
0x07 0x0076 Menu do teclado 0x0082 CONCEITOS PRINCIPAIS
0x07 0x0077 Seleção de teclado 0x0084 PRINCIPAIS_FRENTES
0x07 0x0078 Interrupção do teclado 0x0080 PARAR_CHAVE 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x0079 Teclado de novo 0x0081 PRINCIPAIS_NOVAS
0x07 0x007a Desfazer teclado 0x0083 PRINCIPAL_DESFAZER
0x07 0x007b Corte do teclado 0x0089 CORTE_CHAVE
0x07 0x007c Texto do teclado 0x0085 CÓPIA_PRINCIPAL
0x07 0x007d Colar o teclado 0x0087 COLETA DE CHAVE
0x07 0x007e Localizar teclado 0x0088 DESCOBERTA DE PRINCIPAIS
0x07 0x007f Desativar som do teclado 0x0071 DESLIGAR TELEFONE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x07 0x0080 Aumentar volume do teclado 0x0073 VOLUME_PRINCIPAIS 1.6 0x0018 CÓDIGO_VOLUME_UP
0x07 0x0081 Diminuir volume do teclado 0x0072 VOLUME_PRINCIPAL 1.6 0x0019 KEYCODE_VOLUME_DOWN
0x07 0x0082 Teclado com Caps Lock
0x07 0x0083 Bloqueio do teclado Num Lock
0x07 0x0084 Bloqueio de rolagem do teclado
0x07 0x0085 Vírgula do teclado 0x0079 PRINCIPAL_KPCOMMA 3.0 0x009f KEYCODE_NUMPAD_COMMA
0x07 0x0086 Sinal de igual do teclado
0x07 0x0087 Teclado internacional1 0x0059 ROTEIRO_CHAVE
0x07 0x0088 Teclado internacional2 0x005d PRINCIPAL_KATAKANAHIRAGANA
0x07 0x0089 Teclado internacional3 0x007c YEN PRINCIPAL
0x07 0x008a Teclado internacional4 0x005c PRINCIPAL_HENKAN
0x07 0x008b Teclado internacional5 0x005e KEY_MUHENKAN
0x07 0x008c Teclado internacional6 0x005f PRINCIPAL_KPJPCOMMA
0x07 0x008d Teclado internacional7
0x07 0x008e Teclado internacional8
0x07 0x008f Teclado internacional9
0x07 0x0090 Teclado ham1 0x007a PRINCIPAL_HANGEUL
0x07 0x0091 Teclado Lang2 0x007b PRINCIPAIS_HANJA
0x07 0x0092 Teclado <b>com</b> 0x005a PRINCIPAL_KATAKANA
0x07 0x0093 Teclado ham4 0x005b PRINCIPAIS HIRAGANA
0x07 0x0094 Teclado LANGUAGE5 0x0055 KEY_ZENKAKAKUHANKAKU
0x07 0x0095 Teclado Prefixo x
0x07 0x0096 Teclado para LANGUAGE7
0x07 0x0097 Teclado <b>ham8</b>
0x07 0x0098 Teclado para LANGUAGE9
0x07 0x0099 Apagar alternativa do teclado
0x07 0x009a Sistema de Requerimento de Sistema/Atenção do Teclado
0x07 0x009b Cancelar teclado
0x07 0x009c Limpar teclado
0x07 0x009d Teclado anterior
0x07 0x009e Retorno do teclado
0x07 0x009f Separador de teclado
0x07 0x00a0 Saída do teclado
0x07 0x00a1 Operação do teclado
0x07 0x00a2 Limpar teclado/novamente
0x07 0x00a3 CrSel/Props do teclado
0x07 0x00a4 Teclado exSel
0x07 0x00b0 Teclado 00
0x07 0x00b1 Teclado 000
0x07 0x00b2 Separador de milhares
0x07 0x00b3 Separador decimal
0x07 0x00b4 Unidade da moeda
0x07 0x00b5 Subunidade de moeda
0x07 0x00b6 Teclado ( 0x00b3 KEY_KPLEFTPAREN 3.0 0x00a2 KEYCODE_NUMPAD_LEFT_PAREN
0x07 0x00b7 Teclado ) 0x00b4 PRINCIPAIS_PARCEIROS 3.0 0x00a3 KEYCODE_NUMPAD_RIGHT_PAREN
0x07 0x00b8 Teclado {
0x07 0x00b9 Teclado }
0x07 0x00ba Guia do teclado
0x07 0x00bb Backspace do 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 Teclado XOR
0x07 0x00c3 Teclado ^
0x07 0x00c4 % do teclado
0x07 0x00c5 Teclado <
0x07 0x00c6 Teclado >
0x07 0x00c7 Teclado e
0x07 0x00c8 Teclado &&
0x07 0x00c9 Teclado |
0x07 0x00ca Teclado ||
0x07 0x00cb Teclado :
0x07 0x00cc No do teclado
0x07 0x00cd Espaço do teclado
0x07 0x00ce Teclado @
0x07 0x00cf Teclado !
0x07 0x00d0 Armazenamento de memória do teclado
0x07 0x00d1 Recall da memória do teclado
0x07 0x00d2 Memória do teclado limpa
0x07 0x00d3 Adicionar memória do teclado
0x07 0x00d4 Subtração de memória do teclado
0x07 0x00d5 Multiplicar memória do teclado
0x07 0x00d6 Divisão de memória do teclado
0x07 0x00d7 Teclado +/-
0x07 0x00d8 Limpar teclado
0x07 0x00d9 Limpar entrada do teclado
0x07 0x00da Binário do teclado
0x07 0x00db Teclado octal
0x07 0x00dc Decimal do teclado
0x07 0x00dd Hexadecimal do teclado
0x07 0x00e0 Controle esquerdo do teclado 0x001d CTRL_ESQUERDA 3.0 0x0071 CHAVE_CTRL_ESQUERDA
0x07 0x00e1 Shift esquerdo do teclado 0x002a ALTERNATIVA_PARA A ESQUERDA 1.6 0x003b SHIFT_ESQUERDA_CÓDIGO_DA_CHAVE
0x07 0x00e2 Alt esquerdo do teclado 0x0038 KEY_LEFTALT 1.6 0x0039 CÓDIGO_ALTO_ESQUERDA
0x07 0x00e3 GUI do teclado à esquerda 0x007d META_ESQUERDA_CHAVE 3.0 0x0075 META_ESQUERDA_DE_CÓDIGO_CHAVE
0x07 0x00e4 Controle direito do teclado 0x0061 CTRL_DIREITO_CHAVE 3.0 0x0072 CHAVE_CTRL_DIREITA
0x07 0x00e5 Shift direito do teclado 0x0036 KEY_SHIFT PARA DIREITA 1.6 0x003c SHIFT_CHAVE_DIREITA
0x07 0x00e6 Alt direito do teclado 0x0064 DIREITA_CHAVE 1.6 0x003a CÓDIGO_ALTO_DIREITO
0x07 0x00e7 GUI do teclado à direita 0x007e META_DIREITA-CHAVE 3.0 0x0076 CÓDIGO_META_DIREITA
0x07 0x00e8 0x00a4 PRINCIPAL_PAUSA_DE_REPRODUÇÃO 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 EJEÇÃO_PRINCIPAL 3.0 0x0081 KEYCODE_MEDIA_EJECT
0x07 0x00ed 0x0073 VOLUME_PRINCIPAIS 1.6 0x0018 CÓDIGO_VOLUME_UP
0x07 0x00ee 0x0072 VOLUME_PRINCIPAL 1.6 0x0019 KEYCODE_VOLUME_DOWN
0x07 0x00ef 0x0071 DESLIGAR TELEFONE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x07 0x00f0 0x0096 KEY_WW 1.6 0x0040 EXPLORER_CHAVE
0x07 0x00f1 0x009e PRINCIPAL_VOLTAR 1.6 0x0004 CÓDIGO_DE_PREFERÊNCIA
0x07 0x00f2 0x009f PRINCIPAL_PARA 3.0 0x007d KEYCODE_FORWARD
0x07 0x00f3 0x0080 PARAR_CHAVE 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x00f4 0x0088 DESCOBERTA DE PRINCIPAIS
0x07 0x00f5 0x00b1 KEY_SCROLLUP 3.0 0x005c CÓDIGO_DA_PÁGINA_UP
0x07 0x00f6 0x00b2 KEY_SCROLLDOWN 3.0 0x005d CÓDIGO_DA_PÁGINA_BAIXO
0x07 0x00f7 0x00b0 EDIÇÃO DE PRINCIPAIS
0x07 0x00f8 0x008e LEGENDA_PRINCIPAIS
0x07 0x00f9 0x0098 PRINCIPAIS CAFÉ 4.0 0x001a CÓDIGO_ENERGIA
0x07 0x00fa 0 x 00 anúncio ATUALIZAÇÃO DE CHAVE
0x07 0x00fb 0x008c CALC PRINCIPAL 4.0.3 0x00d2 CALCULATOR DE CHAVES

Página genérica para computadores HID (0x01)

Uso de HID Nome de uso do HID LKC Nome do código da chave do Linux Versão AKC Nome do código da chave do Android Observações
0x01 0x0081 Desligamento do sistema 0x0074 PRINCIPAL_POTÊNCIA 1.6 0x001a CÓDIGO_ENERGIA
0x01 0x0082 Suspensão do sistema 0x008e LEGENDA_PRINCIPAIS 4.0 0x001a CÓDIGO_ENERGIA
0x01 0x0083 Despertar o sistema 0x008f DESPERTAR_CHAVE 4.0 0x001a CÓDIGO_ENERGIA
0x01 0x0084 Menu de contexto do sistema
0x01 0x0085 Menu principal do sistema
0x01 0x0086 Menu do app do sistema
0x01 0x0087 Ajuda com o menu do sistema
0x01 0x0088 Sair do menu do sistema
0x01 0x0089 Seleção de menu do sistema
0x01 0x008a Menu do sistema à direita
0x01 0x008b Menu do sistema à esquerda
0x01 0x008c Menu do sistema para cima
0x01 0x008d Abaixo do menu do sistema
0x01 0x008e Reinicialização a frio do sistema
0x01 0x008f Reinicialização com estado salvo do sistema
0x01 0x00a0 Base do sistema
0x01 0x00a1 Desafixo do sistema
0x01 0x00a2 Configuração do sistema
0x01 0x00a3 Intervalo do sistema
0x01 0x00a4 Pausa no depurador do sistema
0x01 0x00a5 Intervalo de aplicativo
0x01 0x00a6 Intervalo do depurador do aplicativo
0x01 0x00a7 Desativar som do alto-falante do sistema
0x01 0x00a8 Hibernação do sistema
0x01 0x00b0 Inverter tela do sistema
0x01 0x00b1 Tela do sistema interna
0x01 0x00b2 Tela do sistema externa
0x01 0x00b3 Tela do sistema nos dois
0x01 0x00b4 Tela do sistema dupla
0x01 0x00b5 Alternar Int/Ext para alternar telas do sistema
0x01 0x00b6 Prim./s de troca de tela do sistema
0x01 0x00b7 Escalonamento automático de LCD de exibição do sistema

Página do cliente HID (0x0c)

Uso de HID Nome de uso do HID LKC Nome do código da chave do Linux Versão AKC Nome do código da chave do Android Observações
0x0c 0x0030 Energia
0x0c 0x0031 Redefinir
0x0c 0x0032 Sono
0x0c 0x0033 Dormir depois
0x0c 0x0034 Modo de suspensão 0x008e LEGENDA_PRINCIPAIS 4.0 0x001a CÓDIGO_ENERGIA
0x0c 0x0040 Menu 0x008b MENU_PRINCIPAL 1.6 0x0052 MENU_DE_CHAVES
0x0c 0x0041 Seleção de menu
0x0c 0x0042 Menu para cima
0x0c 0x0043 Menu para baixo
0x0c 0x0044 Menu à esquerda
0x0c 0x0045 Menu à direita 0x0181 DIREITA_CHAVE
0x0c 0x0046 Escape de menu
0x0c 0x0047 Aumento de valor do menu
0x0c 0x0048 Redução do valor do menu
0x0c 0x0067 Alternar picture-in-picture 0 x 00 Ab JANELA_CHAVE Adicionado em aosp/1365553
0x0c 0x0069 Botão de menu vermelho 0x18e VERMELHO_CHAVE 0x00b7 KEYCODE_PROG_RED Adicionado em aosp/1388616
0x0c 0x006a Botão de menu verde 0x18f VERDE_CHAVE 0x00b8 KEYCODE_PROG_GREEN Adicionado em aosp/1388616
0x0c 0x006b Botão de menu azul 0x191 PRINCIPAL_AZUL 0x00ba KEYCODE_PROG_BLUE Adicionado em aosp/1388616
0x0c 0x006c Botão de menu amarelo 0x190 AMARELO_PRINCIPAL 0x00b9 CÓDIGO_DE_PROG_AMARELO Adicionado em aosp/1388616
0x0c 0x0081 Atribuir seleção
0x0c 0x0082 Etapa de modo
0x0c 0x0083 Último recall 0 x 0.195 SOBRENOME_CHAVE 0xe5 KEYCODE_LAST_CHANNEL Adicionado em aosp/1365551
0x0c 0x0084 Entrar no canal
0x0c 0x0085 Comprar filme
0x0c 0x0088 Computador de seleção de mídia 0x0178 CHAVE_PC
0x0c 0x0089 TV com seleção de mídia 0x0179 TV_CHAVE 3.0 0x00aa TV KEYCODE
0x0c 0x008a Seleção de mídia WWW 0x0096 KEY_WW 1.6 0x0040 EXPLORER_CHAVE
0x0c 0x008b DVD de seleção de mídia 0x0185 PRINCIPAL DVD
0x0c 0x008c Telefone de seleção de mídia 0x00a9 TELEFONE_CHAVE 3.0 0x0005 KEYCODE_CALL
0x0c 0x008d Guia do programa de seleção de mídia 0x016a PROGRAMA_PRINCIPAL 3.0 0x00ac GUIA_DE_CHAVE_CÓDIGO
0x0c 0x008e Telefone com seleção de mídia 0x01a0 KEY_VIDEOPHONE
0x0c 0x008f Jogos de seleção de mídia 0x01a1 PRINCIPAIS JOGOS
0x0c 0x0090 Mensagens de seleção de mídia 0x018c MEMO_PRINCIPAL
0x0c 0x0091 CD com seleção de mídia 0x017f CD-CHAVE
0x0c 0x0092 VCR de seleção de mídia 0x017b VCR_CHAVE
0x0c 0x0093 Sintonizador de seleção de mídia 0x0182 TUNER DE CHAVE
0x0c 0x0094 Sair 0x00ae SAÍDA_PRINCIPAL
0x0c 0x0095 Ajuda 0x008a AJUDA_PRINCIPAL
0x0c 0x0096 Fita de seleção de mídia 0 x 0.180 TAPE_CHAVE
0x0c 0x0097 Cabo de seleção de mídia 0x017a KEY_TV2
0x0c 0x0098 Satélite de seleção de mídia 0x017d SÁB_PRINCIPAIS
0x0c 0x0099 Segurança da seleção de mídia
0x0c 0x009a Página inicial de seleção de mídia 0x016e PVR_CHAVE 3.0 0 x 00 anúncio KEYCODE_DVR
0x0c 0x0061 Legenda 0 x 0.172 LEGENDA_PRINCIPAL 0x00af LEGENDAS-CHAVE Adicionado em aosp/1365552
0x0c 0x009c Incremento do canal 0x0192 CANAL PRINCIPAL 3.0 0x00a6 KEYCODE_CHANNEL_UP
0x0c 0x009d Redução do canal 0x0193 CANAL PRINCIPAL PARA BAIXO 3.0 0x00a7 KEYCODE_CHANNEL_DOWN
0x0c 0x009e Seleção de mídia SAP
0x0c 0x00a0 VCR Plus 0x017c CHAVE_VCR2
0x0c 0x00a1 Uma vez
0x0c 0x00a2 Diariamente
0x0c 0x00a3 Semanal
0x0c 0x00a4 Mensal
0x0c 0x00b0 Reproduzir 0x00cf REPRODUÇÃO_PRINCIPAL 3.0 0x007e KEYCODE_MEDIA_PLAY
0x0c 0x00b1 Pausar 0x0077 PAUSA_PRINCIPAL 3.0 0x0079 KEYCODE_BREAK
0x0c 0x00b2 Gravar 0x00a7 REGISTRO_CHAVE 3.0 0x0082 KEYCODE_MEDIA_RECORD
0x0c 0x00b3 Avançar rapidamente 0x00d0 CHAVE_RÁPIDO 3.0 0x005a KEYCODE_MEDIA_FAST_FORWARD
0x0c 0x00b4 Voltar 0x00a8 PRINCIPAIS_RECOMPENSAS 3.0 0x0059 CÓDIGO_DA_MEDIA_REVIDA
0x0c 0x00b5 Buscar a próxima faixa 0x00a3 KEY_NEXTSONG 3.0 0x0057 KEYCODE_MEDIA_NEXT
0x0c 0x00b6 Buscar faixa anterior 0x00a5 KEY_PREVIOUSSONG 3.0 0x0058 KEYCODE_MEDIA_PREVIOUS
0x0c 0x00b7 Parar 0x00a6 KEY_STOPCD 3.0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x00b8 Ejetar 0x00a1 EJEÇÃO_PRINCIPAL 3.0 0x0081 KEYCODE_MEDIA_EJECT
0x0c 0x00b9 Reprodução aleatória
0x0c 0x00ba Selecionar disco
0x0c 0x00bb Entrar no disco
0x0c 0x00bc Repetir 0x01b7 KEY_MEDIA_REPEAT
0x0c 0x00be Faixa normal
0x0c 0x00c0 Avançar
0x0c 0x00c1 Enquadramento
0x0c 0x00c2 Marca
0x0c 0x00c3 Limpar marca
0x0c 0x00c4 Repetir a partir da marcação
0x0c 0x00c5 Voltar para marca
0x0c 0x00c6 Marcar para frente
0x0c 0x00c7 Marca de pesquisa para trás
0x0c 0x00c8 Redefinição do contador
0x0c 0x00c9 Mostrar contador
0x0c 0x00ca Incremento de acompanhamento
0x0c 0x00cb Redução de acompanhamento
0x0c 0x00cc Parar / Ejetar
0x0c 0x00cd Reproduzir/Pausar 0x00a4 PRINCIPAL_PAUSA_DE_REPRODUÇÃO 3.0 0x0055 KEYCODE_MEDIA_PLAY_PAUSE
0x0c 0x00ce Reproduzir / Pular
0x0c 0x00e2 Desativar som 0x0071 DESLIGAR TELEFONE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x0c 0x00e5 Realçar graves 0x00d1 BÁSICO DE PRINCIPAIS
0x0c 0x00e6 Modo surround
0x0c 0x00e7 Intensidade
0x0c 0x00e8 MPX
0x0c 0x00e9 Incremento de volume 0x0073 VOLUME_PRINCIPAIS 1.6 0x0018 CÓDIGO_VOLUME_UP
0x0c 0x00ea Diminuir volume 0x0072 VOLUME_PRINCIPAL 1.6 0x0019 KEYCODE_VOLUME_DOWN
0x0c 0x0173 Incremento do áudio alternativo 0 x 00 d KEYCODE_MEDIA_AUDIO_TRACK Adicionado em aosp/1365554
0x0c 0x0181 Configuração do botão de inicialização do AL. Ferramenta
0x0c 0x0182 Configuração do botão programável AL. 0x009c PRINCIPAIS MARCADORES 3.0 0x00ae KEYCODE_BOOKMARK
0x0c 0x0183 Configuração de controle do consumidor AL. 0 x 00 Ab CONFIGURAÇÃO_PRINCIPAL 4.0.3 0x00d1 MÚSICA_CHAVE
0x0c 0x0184 Processador de texto AL 0x01a5 PROCESSADOR DE PALAVRAS-CHAVE
0x0c 0x0185 Editor de texto do AL 0x01a6 EDITOR_PRINCIPAL
0x0c 0x0186 Planilha AL 0x01a7 FOLHA DE PRINCIPAIS
0x0c 0x0187 Editor gráfico AL 0x01a8 PRINCIPAL_EDITOR_GRÁFICO
0x0c 0x0188 Aplicativo de apresentação de AL 0x01a9 APRESENTAÇÃO PRINCIPAL
0x0c 0x0189 App de banco de dados AL 0x01aa BANCO DE DADOS DE PRINCIPAIS
0x0c 0x018a Leitor de e-mail do AL 0x009b E-MAIL_PRINCIPAL 1.6 0x0041 KEYCODE_EN nele
0x0c 0x018b Leitor de notícias AL 0x01ab PRINCIPAIS_NOTÍCIAS
0x0c 0x018c Correio de voz do AL 0x01ac KEY_VOICEMAIL
0x0c 0x018d Contatos do AL / Catálogo de endereços 0x01anúncio KEY_ADDRESSBOOK 4.0.3 0x00cf KEYCODE_Contatos
0x0c 0x018e Agenda / programação do AL 0x018d CALENDÁRIO_PRINCIPAL 4.0.3 0x00d0 CÓDIGO_CHAVE_AGENDA
0x0c 0x018f Gerente de projeto / tarefa de AL
0x0c 0x0190 Registro / diário / card de tempo do AL
0x0c 0x0191 Livro de contas / finanças do AL 0 x 00 dB PRINCIPAIS FINANÇAS
0x0c 0x0192 Calculadora de AL 0x008c CALC PRINCIPAL 4.0.3 0x00d2 CALCULATOR DE CHAVES
0x0c 0x0193 Captura/reprodução A / V AL
0x0c 0x0194 Navegador de máquina local AL 0x0090 ARQUIVO_PRINCIPAL
0x0c 0x0195 Navegador de LAN/WAN AL
0x0c 0x0196 Navegador de Internet AL 0x0096 KEY_WW 1.6 0x0040 EXPLORER_CHAVE
0x0c 0x0197 Rede remota AL/Conexão de ISP
0x0c 0x0198 Conferência da rede AL
0x0c 0x0199 Chat de rede AL 0x00d8 CHAT_PRINCIPAIS
0x0c 0x019a Telefonia / discador AL
0x0c 0x019b Logon AL
0x0c 0x019c Logoff de AL 0x01b1 KEY_LOGOFF
0x0c 0x019d Logon / logoff do AL
0x0c 0x019e Bloqueio de terminal / protetor de tela AL 0x0098 PRINCIPAIS CAFÉ 4.0 0x001a CÓDIGO_ENERGIA
0x0c 0x019f Painel de controle AL
0x0c 0x01a0 Execução / processador de linha de comando AL
0x0c 0x01a1 Gerenciador de tarefas / processo de AL
0x0c 0x01a2 Tarefa / aplicativo de seleção de AL
0x0c 0x01a3 Tarefa / inscrição do AL Next
0x0c 0x01a4 Tarefa / aplicativo anterior do AL
0x0c 0x01a5 Tarefa / app de interrupção preventiva de AL.
0x0c 0x01a6 Central de Ajuda integrada de AL 0x008a AJUDA_PRINCIPAL
0x0c 0x01a7 Documentos AL 0x00eb PRINCIPAIS_DOCUMENTOS
0x0c 0x01a8 Dicionário de sinônimos AL
0x0c 0x01a9 Dicionário AL
0x0c 0x01a AL Desktop
0x0c 0x01ab Verificação ortográfica do AL 0x01b0 PRINCIPAIS_VERIFICAÇÕES
0x0c 0x01ac Verificação gramatical do AL
0x0c 0x01anúncio Status da rede sem fio AL
0x0c 0x01ae Layout do teclado AL
0x0c 0x01af Proteção antivírus AL
0x0c 0x01b0 Criptografia AL
0x0c 0x01b1 Protetor de tela AL
0x0c 0x01b2 Alarmes AL
0x0c 0x01b3 Relógio AL
0x0c 0x01b4 Navegador de arquivos AL
0x0c 0x01b5 Status de energia AL
0x0c 0x01b6 Navegador de imagens AL 0x00e2 MÍDIA_PRINCIPAL 3.0 0x004f KEYCODE_HEADSETHOOK
0x0c 0x01b7 Navegador de áudio AL 0x00d5 SOM_CHAVE 4.0.3 0x00d1 MÚSICA_CHAVE
0x0c 0x01b8 Navegador de filmes em AL
0x0c 0x01b9 Gerente de direitos digitais da AL
0x0c 0x01ba Carteira digital AL
0x0c 0x01bc Mensagens instantâneas de AL 0x01ae PRINCIPAIS MENSAGENS
0x0c 0x01bd Navegador de dicas / recursos do OEM AL 0x0166 PRINCIPAIS INFORMAÇÕES
0x0c 0x01be Ajuda do OEM AL
0x0c 0x01bf Comunidade on-line de AL
0x0c 0x01c0 Navegador de conteúdo da AL Entertainment
0x0c 0x01c1 Navegador de compras on-line de AL
0x0c 0x01c2 Informações / Ajuda sobre o SmartCard AL
0x0c 0x01c3 Navegador do AL Market / Finanças
0x0c 0x01c4 Navegador de notícias corporativo personalizado de AL
0x0c 0x01c5 Navegador de atividades on-line do AL
0x0c 0x01c6 Pesquisa de AL / Navegador de pesquisa
0x0c 0x01c7 Player de áudio AL
0x0c 0x0201 Novo ar-condicionado 0x00b5 PRINCIPAIS_NOVAS
0x0c 0x0202 Abertura de ar-condicionado 0x0086 ABERTURA PRINCIPAL
0x0c 0x0203 Fechamento do ar-condicionado 0x00ce FREQUÊNCIA PRINCIPAL
0x0c 0x0204 Saída de CA 0x00ae SAÍDA_PRINCIPAL
0x0c 0x0205 Maximizar AC
0x0c 0x0206 Minimizar AC
0x0c 0x0207 Economia de AC 0x00ea SALVAR_CHAVE
0x0c 0x0208 Impressão AC 0x00d2 KEY_PRINT
0x0c 0x0209 Propriedades de ar-condicionado 0x0082 CONCEITOS PRINCIPAIS
0x0c 0x021a Desfazer AC 0x0083 PRINCIPAL_DESFAZER
0x0c 0x021b Texto de AC 0x0085 CÓPIA_PRINCIPAL
0x0c 0x021c Corte AC 0x0089 CORTE_CHAVE
0x0c 0x021d Colar AC 0x0087 COLETA DE CHAVE
0x0c 0x021e Selecionar todos os ar-condicionados
0x0c 0x021f Descoberta de AC 0x0088 DESCOBERTA DE PRINCIPAIS
0x0c 0x0220 Localizar e substituir AC
0x0c 0x0221 Pesquisa AC 0x00d9 PESQUISA_CHAVE 1.6 0x0054 PESQUISA DE CÓDIGO_CHAVE
0x0c 0x0222 Ir para AC 0x0162 PRINCIPAIS_GUIAS
0x0c 0x0223 Casa com ar-condicionado 0x00ac PRINCIPAL_PÁGINA INICIAL 3.0 0x0003 PÁGINA INICIAL DO CÓDIGO DE CHAVE
0x0c 0x0224 Parte de trás do ar-condicionado 0x009e PRINCIPAL_VOLTAR 1.6 0x0004 CÓDIGO_DE_PREFERÊNCIA
0x0c 0x0225 Encaminhamento de AC 0x009f PRINCIPAL_PARA 3.0 0x007d KEYCODE_FORWARD
0x0c 0x0226 Parada de ar-condicionado 0x0080 PARAR_CHAVE 3.0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x0227 Atualização do AC 0 x 00 anúncio ATUALIZAÇÃO DE CHAVE
0x0c 0x0228 Link anterior de AC
0x0c 0x0229 Link do AC Next
0x0c 0x022a Favoritos de AC 0x009c PRINCIPAIS MARCADORES 3.0 0x00ae KEYCODE_BOOKMARK
0x0c 0x022b Histórico de AC
0x0c 0x022c Assinaturas de ar-condicionado
0x0c 0x022d Aumentar zoom da ar-condicionado 0x01a2 PRINCIPAIS_ZOLOS
0x0c 0x022e Diminuir zoom AC 0x01a3 PRINCIPAIS ZOOMOUT
0x0c 0x022f Zoom AC 0x01a4 KEY_ZOOMRESET 2
0x0c 0x0230 Visualização em tela cheia do ar-condicionado
0x0c 0x0231 Modo de exibição normal do ar-condicionado
0x0c 0x0232 Botão de ativação/desativação da visualização do ar-condicionado
0x0c 0x0233 Rolar para cima (AC) 0x00b1 KEY_SCROLLUP 3.0 0x005c CÓDIGO_DA_PÁGINA_UP
0x0c 0x0234 Rolar para baixo do ar-condicionado 0x00b2 KEY_SCROLLDOWN 3.0 0x005d CÓDIGO_DA_PÁGINA_BAIXO
0x0c 0x0236 Movimentação AC para a esquerda
0x0c 0x0237 Movimentação AC para a direita
0x0c 0x0239 Nova janela para ar-condicionado
0x0c 0x023a Bloco AC horizontalmente
0x0c 0x023b bloco de ar-condicionado verticalmente
0x0c 0x023c Formato AC
0x0c 0x023d Edição de AC
0x0c 0x023e Negrito CA
0x0c 0x023f Itálico AC
0x0c 0x0240 Sublinhado AC
0x0c 0x0241 Tachado AC
0x0c 0x0242 Subscrito
0x0c 0x0243 Sobrescrito de AC
0x0c 0x0244 Todas as capas para ar-condicionado
0x0c 0x0245 Rotação AC
0x0c 0x0246 Redimensionamento de AC
0x0c 0x0247 Movimentação horizontal do ar-condicionado
0x0c 0x0248 Conversão vertical do ar-condicionado
0x0c 0x0249 Espelho horizontal para ar-condicionado
0x0c 0x024a Espelho de ar-condicionado vertical
0x0c 0x024b Seleção de fonte AC
0x0c 0x024c Cor da fonte da CA
0x0c 0x024d Tamanho da fonte CA
0x0c 0x024e AC Justificar à esquerda
0x0c 0x024f Justificar no centro H
0x0c 0x0250 Justificar AC para a direita
0x0c 0x0251 Bloco H de justificativa para AC
0x0c 0x0252 Justificar AC
0x0c 0x0253 Justificar no centro V da AC
0x0c 0x0254 Justificar na parte inferior da AC
0x0c 0x0255 Justificar AC – Bloco V
0x0c 0x0256 Redução do recuo da AC
0x0c 0x0257 Aumento do recuo da AC
0x0c 0x0258 Lista numerada de AC
0x0c 0x0259 Numeração de reinicialização do AC
0x0c 0x025a Lista com marcadores de AC
0x0c 0x025b Promoção de AC
0x0c 0x025c Rebaixamento de AC
0x0c 0x025d Ar-condicionado: sim
0x0c 0x025e Número de AC
0x0c 0x025f Cancelamento de AC 0x00df KEY_CANCEL
0x0c 0x0260 Catálogo AC
0x0c 0x0261 Compra / Finalização da compra AC
0x0c 0x0262 Adicionar ar-condicionado ao carrinho
0x0c 0x0263 Expansão de AC
0x0c 0x0264 Expandir tudo para AC
0x0c 0x0265 Recolhimento do AC
0x0c 0x0266 Recolher tudo de AC
0x0c 0x0267 Visualização de impressão de AC
0x0c 0x0268 Cola especial para AC
0x0c 0x0269 Modo de inserção de ar-condicionado
0x0c 0x026a Exclusão de AC
0x0c 0x026b Fechadura AC
0x0c 0x026c Desbloqueio de AC
0x0c 0x026d Proteção de CA
0x0c 0x026e Desproteção do ar-condicionado
0x0c 0x026f Anexar comentário de AC
0x0c 0x0270 Excluir comentário do AC
0x0c 0x0271 Ler comentário do AC
0x0c 0x0272 Palavra de seleção de AC
0x0c 0x0273 Frase selecionada para AC
0x0c 0x0274 Parágrafo de seleção de AC
0x0c 0x0275 Coluna de seleção de AC
0x0c 0x0276 Linha de seleção de AC
0x0c 0x0277 Tabela de seleção de ar-condicionado
0x0c 0x0278 Selecionar objeto de AC
0x0c 0x0279 Refazer / repetir no AC 0x00b6 REDE_PRINCIPAIS
0x0c 0x027a Classificação AC
0x0c 0x027b Classificação em ordem crescente de AC
0x0c 0x027c Classificação decrescente de AC
0x0c 0x027d Filtro de ar-condicionado
0x0c 0x027e Relógio ar-condicionado
0x0c 0x027f Relógio no modo ar-condicionado
0x0c 0x0280 Selecionar fuso horário do ar-condicionado
0x0c 0x0281 Editar fusos horários em AC
0x0c 0x0282 Alarme definido para ar-condicionado
0x0c 0x0283 Alarme de limpeza de ar-condicionado
0x0c 0x0284 Alarme de soneca para ar-condicionado
0x0c 0x0285 Alarme de redefinição do ar-condicionado
0x0c 0x0286 Sincronização de AC
0x0c 0x0287 Enviar/receber AC
0x0c 0x0288 Envio de AC
0x0c 0x0289 Resposta de AC 0x00e8 RESPOSTA_PRINCIPAIS
0x0c 0x028a Resposta a todos do ar-condicionado
0x0c 0x028b Mensagem de encaminhamento de AC 0x00e9 KEY_FORWARDMAIL
0x0c 0x028c Envio de AC 0x00e7 ENVIO DE PRINCIPAIS
0x0c 0x028d Arquivo de anexação de AC
0x0c 0x028e Upload de AC
0x0c 0x028f Download de AC (Salvar destino como)
0x0c 0x0290 Bordas definidas para ar-condicionado
0x0c 0x0291 Linha de inserção de AC
0x0c 0x0292 Coluna "Inserir AC"
0x0c 0x0293 Arquivo de inserção de AC
0x0c 0x0294 Inserir imagem CA
0x0c 0x0295 Objeto de inserção de AC
0x0c 0x0296 Símbolo de inserção de AC
0x0c 0x0297 Salvar e fechar AC
0x0c 0x0298 Renomeação de AC
0x0c 0x0299 Mesclagem AC
0x0c 0x029a Divisão de ar-condicionado
0x0c 0x029b Distribuição horizontal de AC
0x0c 0x029c Distribuição de AC verticalmente

Outros mapeamentos não HID

Esses mapeamentos descrevem funções que não aparecem no HID, mas para as quais o Linux os códigos de tecla.

LKC Nome do código da chave do Linux Versão AKC Nome do código da chave do Android Observações
0x01d0 CHAVE_FN 3.0 0x0077 KEYCODE_FUNCTION
0x01d1 CHAVE_FN_ESC 3.0 0x006f KEYCODE_ESCAPE 3
0x01d2 CHAVE_FN_F1 3.0 0x0083 CÓDIGO_F1 3
0x01d3 CHAVE_FN_F2 3.0 0x0084 CÓDIGO_F2 3
0x01d4 CHAVE_FN_F3 3.0 0x0085 CÓDIGO_CHAVE_F3 3
0x01d5 CHAVE_FN_F4 3.0 0x0086 CÓDIGO_CHAVE_F4 3
0x01d6 CHAVE_FN_F5 3.0 0x0087 CÓDIGO_CHAVE_F5 3
0x01d7 CHAVE_FN_F6 3.0 0x0088 CÓDIGO_CHAVE_F6 3
0x01d8 CHAVE_FN_F7 3.0 0x0089 CÓDIGO_CHAVE_F7 3
0x01d9 CHAVE_FN_F8 3.0 0x008a CÓDIGO_CHAVE_F8 3
0x01da CHAVE_FN_F9 3.0 0x008b CÓDIGO_CHAVE_F9 3
0x01 dB CHAVE_FN_F10 3.0 0x008c CÓDIGO_CHAVE_F10 3
0x01dc CHAVE_FN_F11 3.0 0x008d CÓDIGO_F11 3
0x01dd CHAVE_FN_F12 3.0 0x008e CÓDIGO_F12 3
0x01de CHAVE_FN_1 3.0 0x0008 CÓDIGO_CHAVE_1 3
0x01df CHAVE_FN_2 3.0 0x0009 CÓDIGO_CHAVE_2 3
0x01e0 CHAVE_FN_D 3.0 0x0020 CÓDIGO_DA_CHAVE 3
0x01e1 CHAVE_FN_E 3.0 0x0021 CÓDIGO_CHAVE_E 3
0x01e2 CHAVE_FN_F 3.0 0x0022 CÓDIGO_CHAVE_F 3
0x01e3 PRINCIPAIS_FN_S 3.0 0x002f CÓDIGOS_CHAVE_S 3
0x01e4 CHAVE_FN_B 3.0 0x001e CÓDIGO_CHAVE_B 3

Chaves legadas sem suporte

Esses mapeamentos apareciam em versões anteriores do Android, mas eram inconsistentes com HID ou códigos de chave Linux não padrão usados. Eles não são mais compatíveis.

LKC Nome do código da chave do Linux Versão AKC Nome do código da chave do Android Observações
0 x 00 dB E-MAIL_PRINCIPAL 1.6 0x004d CÓDIGO_DA_CHAVE 4
"" "" 4.0 4
0x00e3 ESTRELA PRINCIPAL 1.6 0x0011 ESTRELA_CHAVE 4
"" "" 4.0 4
0x00e4 PRINCIPAL HHARI 1.6 0x0012 KEYCODE_POUND 4
"" "" 4.0 4
0x00e5 PRINCIPAIS_SOFT1 1.6 0x0052 MENU_DE_CHAVES 4
"" "" 4.0 4
0x00e6 PRINCIPAIS_SOFT2 1.6 0x0002 CÓDIGO_CHAVE_SOFT_DIREITA 4
"" "" 4.0 4
0x00e7 ENVIO DE PRINCIPAIS 1.6 0x0005 KEYCODE_CALL 4
"" "" 4.0 4
0x00e8 CENTRAL DE PRINCIPAIS 1.6 0x0017 CENTRAL PARA KEYCODE_DPAD 4
"" "" 4.0 4
0x00e9 KEY_HEADSETHOOK 1.6 0x004f KEYCODE_HEADSETHOOK 4
"" "" 4.0 4
0x00ea CHAVE_0_5 1.6 4
0x00eb CHAVE_2_5 1.6 4

Observações

  1. O código de tecla do Android associado a métodos alfanuméricos e simbólicos podem variar de acordo com o layout e o idioma do teclado. Por motivos históricos, os códigos de verificação físicos e o uso de HID associadas a teclas em um teclado são frequentemente definidas de maneira mesmo que os rótulos impressos nessas chaves possam variar de um de uma linguagem para outra.

    Em um teclado em inglês americano (QWERTY), a tecla alfabética no canto superior esquerdo é rotulado como Q. Em um teclado francês (AZERTY), a tecla na mesma posição é identificada como A. Apesar do rótulo, nos dois teclados, a chave alfabética no canto superior esquerdo é chamada de uso do HID 0x07 0x0014 que é mapeado para o código de tecla do Linux KEY_Q.

    Quando o Android estiver configurado com um layout de teclado em inglês americano, o código de tecla do Linux KEY_Q será mapeado para o código de tecla do Android; KEYCODE_Q e produzirá os caracteres 'Q' e "q". No entanto, quando o Android está configurado com um layout de teclado francês, o código de tecla do Linux KEY_Q será mapeado para o código de tecla do Android KEYCODE_A e produzirá os caracteres 'A' e "a".

    O código de chave do Android costuma refletir as definições a interpretação da chave. Portanto, um código de tecla Android diferente pode ser usados em diferentes idiomas.

  2. 0x0c 0x022f AC Zoom é definido no HID como um controle linear, mas o kernel a mapeia como uma chave, o que provavelmente está incorreto.

  3. As teclas de função KEY_FN_* do Linux são associadas a uma códigos de teclas, mas são enviados com o estado meta META_FUNCTION bit definido como verdadeiro.

  4. Antes do Android Ice Cream Sandwich 4.0, o layout de chave padrão continham mapeamentos para alguns códigos de teclas extras que não foram definidos nos cabeçalhos do kernel do Linux principal. Desde então, esses mapeamentos porque esses códigos de tecla anteriormente indefinidos já que receberam significados diferentes em versões mais recentes do kernel do Linux.

Fontes

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