O Android oferece suporte a uma variedade de dispositivos de teclado, incluindo teclados de funções especiais (controles de volume e energia), teclados QWERTY integrados compactos e teclados externos estilo PC com todos os recursos.
Este documento descreve apenas teclados físicos. Consulte o SDK do Android para obter informações sobre teclados virtuais (editores de método de entrada).
Classificação do teclado
Um dispositivo de entrada é classificado como teclado se uma das seguintes condições for válida:
O dispositivo de entrada relata a presença de quaisquer códigos de teclas do Linux usados em teclados, incluindo
0
a0xff
ouKEY_OK
aKEY_MAX
.O dispositivo de entrada relata a presença de quaisquer códigos de chave do Linux usados em joysticks e gamepads, incluindo
BTN_0
aBTN_9
,BTN_TRIGGER
aBTN_DEAD
ouBTN_A
aBTN_THUMBR
.
Atualmente, os joysticks são classificados como teclados porque os botões do joystick e do gamepad são relatados por eventos EV_KEY
da mesma forma que as teclas do teclado são relatadas. Assim, joysticks e gamepads também utilizam arquivos de mapas principais para configuração.
Depois que um dispositivo de entrada for classificado como teclado, o sistema carrega o arquivo de configuração do dispositivo de entrada e o layout do teclado.
O sistema então tenta determinar características adicionais do dispositivo.
Se o dispositivo de entrada tiver teclas mapeadas para
KEYCODE_Q
, então o dispositivo será considerado como tendo um teclado alfabético (em oposição ao numérico). A capacidade do teclado alfabético é relatada no objetoConfiguration
do recurso comoKEYBOARD_QWERTY
.Se o dispositivo de entrada tiver chaves mapeadas para
KEYCODE_DPAD_UP
,KEYCODE_DPAD_DOWN
,KEYCODE_DPAD_LEFT
,KEYCODE_DPAD_RIGHT
eKEYCODE_DPAD_CENTER
(todas devem estar presentes), então o dispositivo será considerado como tendo um teclado direcional. A capacidade do teclado direcional é relatada no objetoConfiguration
do recurso comoNAVIGATION_DPAD
.Se o dispositivo de entrada tiver teclas mapeadas para
KEYCODE_BUTTON_A
ou outras teclas relacionadas ao gamepad, então o dispositivo será considerado como tendo um gamepad.
Requisitos de driver de teclado
Os drivers de teclado só devem registrar códigos de teclas para as teclas que realmente suportam. O registro de códigos de teclas em excesso pode confundir o algoritmo de classificação do dispositivo ou fazer com que o sistema detecte incorretamente os recursos de teclado suportados pelo dispositivo.
Os drivers de teclado devem usar
EV_KEY
para relatar pressionamentos de teclas, usando um valor0
para indicar que uma tecla foi liberada, um valor1
para indicar que uma tecla foi pressionada e um valor maior ou igual a2
para indicar que a tecla foi pressionada. sendo repetido automaticamente.O Android executa sua própria repetição de teclado. A funcionalidade de repetição automática deve estar desabilitada no driver.
Os drivers de teclado podem indicar opcionalmente o uso de HID ou código de varredura de baixo nível enviando
EV_MSC
comMSC_SCANCODE
e um valor indicando o uso ou código de varredura quando a tecla é pressionada. Esta informação não é usada atualmente pelo Android.Os drivers de teclado devem dar suporte à configuração de estados de LED quando
EV_LED
é gravado no dispositivo. O driverhid-input
lida com isso automaticamente. No momento em que este livro foi escrito, o Android usavaLED_CAPSLOCK
,LED_SCROLLLOCK
eLED_NUMLOCK
. Esses LEDs só precisam ser suportados quando o teclado realmente possui as luzes indicadoras associadas.Drivers de teclado para teclados incorporados (por exemplo, usando uma matriz GPIO) devem enviar eventos
EV_KEY
com valor0
para quaisquer teclas que ainda estejam pressionadas quando o dispositivo estiver no modo de suspensão. Caso contrário, as teclas poderão ficar presas e serão repetidas automaticamente para sempre.
Operação do teclado
A seguir está um breve resumo da operação do teclado no Android.
O
EventHub
lê eventos brutos do driverevdev
e mapeia códigos-chave do Linux (às vezes chamados de códigos de varredura) em códigos-chave do Android usando o mapa de layout de teclas do teclado.O
InputReader
consome os eventos brutos e atualiza o estado da meta-chave. Por exemplo, se a tecla shift esquerda for pressionada ou liberada, o leitor irá definir ou redefinir os bitsMETA_SHIFT_LEFT_ON
eMETA_SHIFT_ON
de acordo.O
InputReader
notifica oInputDispatcher
sobre o evento chave.O
InputDispatcher
pergunta aoWindowManagerPolicy
o que fazer com o evento chave chamandoWindowManagerPolicy.interceptKeyBeforeQueueing
. Este método faz parte de um caminho crítico responsável por despertar o dispositivo quando determinadas teclas são pressionadas. OEventHub
mantém efetivamente um wake lock ao longo desse caminho crítico para garantir que ele será executado até a conclusão.Se um
InputFilter
estiver em uso, oInputDispatcher
lhe dará a chance de consumir ou transformar a chave. OInputFilter
pode ser usado para implementar políticas de acessibilidade de baixo nível em todo o sistema.O
InputDispatcher
enfileira a chave para processamento no thread de despacho.Quando o
InputDispatcher
retira a chave da fila, ele dá aoWindowManagerPolicy
uma segunda chance de interceptar o evento chave chamandoWindowManagerPolicy.interceptKeyBeforeDispatching
. Este método lida com atalhos do sistema e outras funções.O
InputDispatcher
então identifica o alvo do evento principal (a janela em foco) e espera que eles fiquem prontos. Em seguida, oInputDispatcher
entrega o evento chave ao aplicativo.Dentro do aplicativo, o evento-chave se propaga pela hierarquia de visualização até a visualização em foco para envio de chave pré-IME.
Se o evento principal não for tratado no despacho pré-IME e um IME estiver em uso, o evento principal será entregue ao IME.
Se o evento-chave não tiver sido consumido pelo IME, o evento-chave se propagará para baixo na hierarquia de visualização até a visualização em foco para envio de chave padrão.
O aplicativo reporta ao
InputDispatcher
se o evento principal foi consumido. Se o evento não foi consumido, oInputDispatcher
chamaWindowManagerPolicy.dispatchUnhandledKey
para aplicar o comportamento de "substituição". Dependendo da ação de fallback, o ciclo de despacho de evento chave pode ser reiniciado usando um código chave diferente. Por exemplo, se um aplicativo não manipularKEYCODE_ESCAPE
, o sistema poderá reenviar o evento chave comoKEYCODE_BACK
.
Configuração do teclado
O comportamento do teclado é determinado pelo layout das teclas do teclado, pelo mapa de caracteres das teclas e pela configuração do dispositivo de entrada.
Consulte as seções a seguir para obter mais detalhes sobre os arquivos que participam da configuração do teclado:
- Arquivos de layout principais
- Arquivos de mapa de caracteres principais
- Arquivos de configuração do dispositivo de entrada
Propriedades
As seguintes propriedades de configuração de dispositivo de entrada são usadas para teclados.
teclado.layout
Definição: keyboard.layout
= <nome>
Especifica o nome do arquivo de layout de teclas associado ao dispositivo de entrada, excluindo a extensão .kl
. Se este 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 obter mais detalhes.
teclado.characterMap
Definição: keyboard.characterMap
= <nome>
Especifica o nome do arquivo de mapa de caracteres principais associado ao dispositivo de entrada, excluindo a extensão .kcm
. Se este arquivo não for encontrado, o sistema de entrada usará o mapa de caracteres-chave padrão.
Os espaços no nome são convertidos em sublinhados durante a pesquisa.
Consulte a documentação do arquivo de mapa de caracteres principais para obter mais detalhes.
teclado.orientationAware
Definição: keyboard.orientationAware
= 0
| 1
Especifica se o teclado deve reagir às alterações de orientação de exibição.
Se o valor for
1
, as teclas do teclado direcional serão giradas quando a orientação da tela associada for alterada.Se o valor for
0
, o teclado estará imune a alterações de orientação de exibição.
O valor padrão é 0
.
O reconhecimento de orientação é usado para suportar a rotação das teclas direcionais do teclado, como no Motorola Droid. Por exemplo, quando o dispositivo é girado 90 graus no sentido horário a partir de sua orientação natural, KEYCODE_DPAD_UP
é remapeado para produzir KEYCODE_DPAD_RIGHT
, pois a tecla 'para cima' acaba apontando para 'direita' quando o dispositivo é mantido nessa orientação.
teclado.builtIn
Definição: keyboard.builtIn
= 0
| 1
Especifica se o teclado é integrado (conectado fisicamente).
O valor padrão é 1
se o nome do dispositivo terminar com -keypad
, 0
caso contrário.
O teclado integrado sempre recebe um ID de dispositivo 0
. Outros teclados que não são integrados recebem IDs de dispositivo exclusivos diferentes de zero.
Usar um id 0
para o teclado integrado é importante para manter a compatibilidade com o campo KeyCharacterMap.BUILT_IN_KEYBOARD
, que especifica o id do teclado integrado e tem um valor 0
. Este campo foi descontinuado na API, mas aplicativos mais antigos ainda podem utilizá-lo.
Um teclado de função especial (aquele cujo mapa de caracteres de teclas especifica um tipo de SPECIAL_FUNCTION
) nunca será registrado como teclado integrado, independentemente da configuração desta propriedade. Isso ocorre porque um teclado de função especial, por definição, não se destina a ser usado para digitação de uso geral.
Configurações de exemplo
# 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 compatibilidade
Antes do Honeycomb, o mapeador de entrada do teclado não usava nenhuma propriedade de configuração. Todos os teclados foram considerados fisicamente conectados e com reconhecimento de orientação. O layout de teclas padrão e o mapa de caracteres principais foram nomeados qwerty
em vez de Generic
. O formato do mapa de caracteres principais também era muito diferente e a estrutura não suportava teclados completos no estilo PC ou teclados externos.
Ao atualizar dispositivos para Honeycomb, certifique-se de criar ou atualizar a configuração necessária e os principais arquivos de mapa.
Usos de HID, códigos-chave do Linux e códigos-chave do Android
O sistema refere-se a chaves que utilizam vários identificadores diferentes, dependendo da camada de abstração.
Para dispositivos HID, cada chave possui um uso de HID associado. O driver hid-input
do Linux e os drivers HID específicos do fornecedor e do dispositivo relacionados são responsáveis por analisar relatórios HID e mapear usos de HID para códigos-chave do Linux.
À medida que o Android lê eventos EV_KEY
do kernel do Linux, ele traduz cada código-chave do Linux em seu código-chave Android correspondente, de acordo com o arquivo de layout de chave do dispositivo.
Quando o evento key é enviado para um aplicativo, a instância android.view.KeyEvent
relata o código-chave do Linux como o valor de getScanCode()
e o código-chave do Android como o valor de getKeyCode()
. Para efeitos da estrutura, apenas o valor de getKeyCode()
é importante.
Observe que as informações de uso do HID não são usadas pelo próprio Android nem passadas para aplicativos.
Tabelas de códigos
As tabelas a seguir mostram como os usos de HID, os códigos-chave do Linux e os códigos-chave do Android estão relacionados entre si.
A coluna LKC especifica o código-chave do Linux em hexadecimal.
A coluna AKC especifica o código-chave do Android em hexadecimal.
A coluna Notas refere-se às notas publicadas após a tabela.
A coluna Versão especifica a primeira versão da plataforma Android que incluiu essa chave em seu mapa de chaves padrão. Várias linhas são mostradas nos casos em que o mapa de teclas padrão mudou 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 teclas foi projetado apenas para uso com o Android Emulator e não para suporte a teclados externos arbitrários. No entanto, alguns OEMs adicionaram suporte de teclado Bluetooth à plataforma e confiaram noqwerty.kl
para fornecer os mapeamentos de teclado necessários. Conseqüentemente, esses mapeamentos mais antigos podem ser de interesse para OEMs que estão construindo periféricos para esses dispositivos específicos. Observe que os mapeamentos são substancialmente diferentes dos atuais, principalmente no que diz respeito ao tratamento da chaveHOME
. Recomenda-se que todos os novos periféricos sejam desenvolvidos de acordo com o Honeycomb ou mapas de teclas mais recentes (ou seja, HID padrão).A partir do Honeycomb (3.0), o mapa de chaves padrão é
Generic.kl
. Este mapa de teclas foi projetado para suportar teclados completos no estilo PC. A maioria das funcionalidades dos teclados HID padrão deve funcionar imediatamente.
O mapeamento do código-chave pode variar entre as versões do kernel Linux e Android. Quando se sabe que ocorreram alterações nos mapas de teclas padrão do Android, elas são indicadas na coluna de versão.
Drivers HID específicos do dispositivo e mapas de chaves podem aplicar mapeamentos diferentes dos indicados aqui.
Teclado HID e página do teclado (0x07)
Uso HID | Nome de uso HID | LKC | Nome do código-chave do Linux | Versão | AKC | Nome do código-chave do Android | Notas |
---|---|---|---|---|---|---|---|
0x070x0001 | Erro de teclado | ||||||
0x070x0002 | Falha no POST do teclado | ||||||
0x070x0003 | Erro de teclado indefinido | ||||||
0x070x0004 | Teclado A e A | 0x001e | CHAVE_A | 1.6 | 0x001d | KEYCODE_A | 1 |
0x070x0005 | Teclado b e B | 0x0030 | CHAVE_B | 1.6 | 0x001e | KEYCODE_B | 1 |
0x070x0006 | Teclado c e C | 0x002e | CHAVE_C | 1.6 | 0x001f | KEYCODE_C | 1 |
0x070x0007 | Teclado d e D | 0x0020 | CHAVE_D | 1.6 | 0x0020 | KEYCODE_D | 1 |
0x070x0008 | Teclado e e E | 0x0012 | CHAVE_E | 1.6 | 0x0021 | KEYCODE_E | 1 |
0x070x0009 | Teclado f e F | 0x0021 | CHAVE_F | 1.6 | 0x0022 | KEYCODE_F | 1 |
0x070x000a | Teclado g e G | 0x0022 | CHAVE_G | 1.6 | 0x0023 | KEYCODE_G | 1 |
0x070x000b | Teclado h e H | 0x0023 | CHAVE_H | 1.6 | 0x0024 | KEYCODE_H | 1 |
0x070x000c | Teclado eu e eu | 0x0017 | CHAVE_I | 1.6 | 0x0025 | KEYCODE_I | 1 |
0x070x000d | Teclado j e J | 0x0024 | CHAVE_J | 1.6 | 0x0026 | KEYCODE_J | 1 |
0x070x000e | Teclado k e K | 0x0025 | KEY_K | 1.6 | 0x0027 | KEYCODE_K | 1 |
0x070x000f | Teclado l e L | 0x0026 | KEY_L | 1.6 | 0x0028 | KEYCODE_L | 1 |
0x070x0010 | Teclado m e M | 0x0032 | KEY_M | 1.6 | 0x0029 | KEYCODE_M | 1 |
0x070x0011 | Teclado n e N | 0x0031 | CHAVE_N | 1.6 | 0x002a | KEYCODE_N | 1 |
0x070x0012 | Teclado o e O | 0x0018 | CHAVE_O | 1.6 | 0x002b | KEYCODE_O | 1 |
0x070x0013 | Teclado p e P | 0x0019 | KEY_P | 1.6 | 0x002c | KEYCODE_P | 1 |
0x070x0014 | Teclado q e Q | 0x0010 | CHAVE_Q | 1.6 | 0x002d | KEYCODE_Q | 1 |
0x070x0015 | Teclado r e R | 0x0013 | KEY_R | 1.6 | 0x002e | KEYCODE_R | 1 |
0x070x0016 | Teclado s e S | 0x001f | CHAVES | 1.6 | 0x002f | KEYCODE_S | 1 |
0x070x0017 | Teclado t e T | 0x0014 | CHAVE_T | 1.6 | 0x0030 | KEYCODE_T | 1 |
0x070x0018 | Teclado você e você | 0x0016 | CHAVE_U | 1.6 | 0x0031 | KEYCODE_U | 1 |
0x070x0019 | Teclado v e V | 0x002f | CHAVE_V | 1.6 | 0x0032 | KEYCODE_V | 1 |
0x070x001a | Teclado w e W | 0x0011 | KEY_W | 1.6 | 0x0033 | KEYCODE_W | 1 |
0x070x001b | Teclado x e X | 0x002d | CHAVE_X | 1.6 | 0x0034 | KEYCODE_X | 1 |
0x070x001c | Teclado y e y | 0x0015 | CHAVE_Y | 1.6 | 0x0035 | KEYCODE_Y | 1 |
0x070x001d | Teclado z e Z | 0x002c | TECLA_Z | 1.6 | 0x0036 | KEYCODE_Z | 1 |
0x070x001e | Teclado 1 e ! | 0x0002 | CHAVE_1 | 1.6 | 0x0008 | KEYCODE_1 | 1 |
0x070x001f | Teclado 2 e @ | 0x0003 | CHAVE_2 | 1.6 | 0x0009 | KEYCODE_2 | 1 |
0x070x0020 | Teclado 3 e # | 0x0004 | CHAVE_3 | 1.6 | 0x000a | KEYCODE_3 | 1 |
0x070x0021 | Teclado 4 e $ | 0x0005 | CHAVE_4 | 1.6 | 0x000b | KEYCODE_4 | 1 |
0x070x0022 | Teclado 5 e% | 0x0006 | CHAVE_5 | 1.6 | 0x000c | KEYCODE_5 | 1 |
0x070x0023 | Teclado 6 e ^ | 0x0007 | CHAVE_6 | 1.6 | 0x000d | KEYCODE_6 | 1 |
0x070x0024 | Teclado 7 e & | 0x0008 | CHAVE_7 | 1.6 | 0x000e | KEYCODE_7 | 1 |
0x070x0025 | Teclado 8 e * | 0x0009 | CHAVE_8 | 1.6 | 0x000f | KEYCODE_8 | 1 |
0x070x0026 | Teclado 9 e ( | 0x000a | CHAVE_9 | 1.6 | 0x0010 | KEYCODE_9 | 1 |
0x070x0027 | Teclado 0 e ) | 0x000b | KEY_0 | 1.6 | 0x0007 | KEYCODE_0 | 1 |
0x070x0028 | Retorno do teclado (ENTER) | 0x001c | KEY_ENTER | 1.6 | 0x0042 | KEYCODE_ENTER | 1 |
0x070x0029 | ESCAPE DO TECLADO | 0x0001 | KEY_ESC | 3,0 | 0x006f | KEYCODE_ESCAPE | |
"" | "" | "" | "" | 2.3 | 0x0004 | KEYCODE_BACK | |
0x070x002a | Teclado DELETE (Backspace) | 0x000e | KEY_BACKSPACE | 1.6 | 0x0043 | KEYCODE_DEL | |
0x070x002b | Guia Teclado | 0x000f | KEY_TAB | 1.6 | 0x003d | KEYCODE_TAB | |
0x070x002c | Barra de espaço do teclado | 0x0039 | KEY_SPACE | 1.6 | 0x003e | KEYCODE_SPACE | |
0x070x002d | Teclado - e _ | 0x000c | KEY_MINUS | 1.6 | 0x0045 | KEYCODE_MINUS | 1 |
0x070x002e | Teclado = e + | 0x000d | KEY_EQUAL | 1.6 | 0x0046 | KEYCODE_EQUALS | 1 |
0x070x002f | Teclado [ e { | 0x001a | KEY_LEFTBRACE | 1.6 | 0x0047 | KEYCODE_LEFT_BRACKET | 1 |
0x070x0030 | Teclado ] e } | 0x001b | KEY_RIGHTBRACE | 1.6 | 0x0048 | KEYCODE_RIGHT_BRACKET | 1 |
0x070x0031 | Teclado \ e | | 0x002b | KEY_BACKSLASH | 1.6 | 0x0049 | KEYCODE_BACKSLASH | 1 |
0x070x0032 | Teclado fora dos EUA # e ~ | 0x002b | KEY_BACKSLASH | 1.6 | 0x0049 | KEYCODE_BACKSLASH | 1 |
0x070x0033 | Teclado ; e : | 0x0027 | KEY_SEMICOLON | 1.6 | 0x004a | KEYCODE_SEMICOLON | 1 |
0x070x0034 | Teclado ' e " | 0x0028 | KEY_APOSTROFE | 1.6 | 0x004b | KEYCODE_APOSTROPHE | 1 |
0x070x0035 | Teclado ` e ~ | 0x0029 | KEY_GRAVE | 3,0 | 0x0044 | KEYCODE_GRAVE | 1 |
0x070x0036 | Teclado e < | 0x0033 | KEY_COMMA | 1.6 | 0x0037 | KEYCODE_COMMA | 1 |
0x070x0037 | Teclado . e > | 0x0034 | KEY_DOT | 1.6 | 0x0038 | KEYCODE_PERIOD | 1 |
0x070x0038 | Teclado / e ? | 0x0035 | KEY_SLASH | 1.6 | 0x004c | KEYCODE_SLASH | 1 |
0x070x0039 | Caps Lock do teclado | 0x003a | KEY_CAPSLOCK | 3,0 | 0x0073 | KEYCODE_CAPS_LOCK | |
0x070x003a | Teclado F1 | 0x003b | KEY_F1 | 3,0 | 0x0083 | KEYCODE_F1 | |
"" | "" | "" | "" | 1.6 | 0x0052 | KEYCODE_MENU | |
0x070x003b | Teclado F2 | 0x003c | KEY_F2 | 3,0 | 0x0084 | KEYCODE_F2 | |
"" | "" | "" | "" | 1.6 | 0x0002 | KEYCODE_SOFT_RIGHT | |
0x070x003c | Teclado F3 | 0x003d | KEY_F3 | 3,0 | 0x0085 | KEYCODE_F3 | |
"" | "" | "" | "" | 1.6 | 0x0005 | KEYCODE_CALL | |
0x070x003d | Teclado F4 | 0x003e | KEY_F4 | 3,0 | 0x0086 | KEYCODE_F4 | |
"" | "" | "" | "" | 1.6 | 0x0006 | KEYCODE_ENDCALL | |
0x070x003e | Teclado F5 | 0x003f | KEY_F5 | 3,0 | 0x0087 | KEYCODE_F5 | |
0x070x003f | Teclado F6 | 0x0040 | KEY_F6 | 3,0 | 0x0088 | KEYCODE_F6 | |
0x070x0040 | Teclado F7 | 0x0041 | KEY_F7 | 3,0 | 0x0089 | KEYCODE_F7 | |
0x070x0041 | Teclado F8 | 0x0042 | KEY_F8 | 3,0 | 0x008a | KEYCODE_F8 | |
0x070x0042 | Teclado F9 | 0x0043 | KEY_F9 | 3,0 | 0x008b | KEYCODE_F9 | |
0x070x0043 | Teclado F10 | 0x0044 | KEY_F10 | 3,0 | 0x008c | KEYCODE_F10 | |
"" | "" | "" | "" | 2.3 | 0x0052 | KEYCODE_MENU | |
0x070x0044 | Teclado F11 | 0x0057 | KEY_F11 | 3,0 | 0x008d | KEYCODE_F11 | |
0x070x0045 | Teclado F12 | 0x0058 | KEY_F12 | 3,0 | 0x008e | KEYCODE_F12 | |
0x070x0046 | Tela de impressão do teclado | 0x0063 | KEY_SYSRQ | 3,0 | 0x0078 | KEYCODE_SYSRQ | |
0x070x0047 | Bloqueio de rolagem do teclado | 0x0046 | KEY_SCROLLLOCK | 3,0 | 0x0074 | KEYCODE_SCROLL_LOCK | |
0x070x0048 | Pausa no teclado | 0x0077 | KEY_PAUSE | 3,0 | 0x0079 | KEYCODE_BREAK | |
0x070x0049 | Inserção de teclado | 0x006e | KEY_INSERT | 3,0 | 0x007c | KEYCODE_INSERT | |
0x070x004a | Página inicial do teclado | 0x0066 | KEY_HOME | 3,0 | 0x007a | KEYCODE_MOVE_HOME | |
"" | "" | "" | "" | 1.6 | 0x0003 | KEYCODE_HOME | |
0x070x004b | Página do teclado para cima | 0x0068 | KEY_PAGEUP | 3,0 | 0x005c | KEYCODE_PAGE_UP | |
0x070x004c | Teclado Excluir Avançar | 0x006f | KEY_DELETE | 3,0 | 0x0070 | KEYCODE_FORWARD_DEL | |
0x070x004d | Fim do teclado | 0x006b | KEY_END | 3,0 | 0x007b | KEYCODE_MOVE_END | |
"" | "" | "" | "" | 1.6 | 0x0006 | KEYCODE_ENDCALL | |
0x070x004e | Página do teclado para baixo | 0x006d | KEY_PAGEDOWN | 3,0 | 0x005d | KEYCODE_PAGE_DOWN | |
0x070x004f | Seta para a direita do teclado | 0x006a | KEY_RIGHT | 1.6 | 0x0016 | KEYCODE_DPAD_RIGHT | |
0x070x0050 | Seta para esquerda do teclado | 0x0069 | KEY_LEFT | 1.6 | 0x0015 | KEYCODE_DPAD_LEFT | |
0x070x0051 | Seta para baixo do teclado | 0x006c | KEY_DOWN | 1.6 | 0x0014 | KEYCODE_DPAD_DOWN | |
0x070x0052 | Seta para cima do teclado | 0x0067 | KEY_UP | 1.6 | 0x0013 | KEYCODE_DPAD_UP | |
0x070x0053 | Teclado Num Lock e claro | 0x0045 | KEY_NUMLOCK | 3,0 | 0x008f | KEYCODE_NUM_LOCK | |
0x070x0054 | Teclado / | 0x0062 | KEY_KPSLASH | 3,0 | 0x009a | KEYCODE_NUMPAD_DIVIDE | |
0x070x0055 | Teclado * | 0x0037 | KEY_KPASTERISK | 3,0 | 0x009b | KEYCODE_NUMPAD_MULTIPLY | |
0x070x0056 | Teclado - | 0x004a | KEY_KPMINUS | 3,0 | 0x009c | KEYCODE_NUMPAD_SUBTRACT | |
0x070x0057 | Teclado + | 0x004e | KEY_KPPLUS | 3,0 | 0x009d | KEYCODE_NUMPAD_ADD | |
0x070x0058 | Teclado ENTER | 0x0060 | KEY_KPENTER | 3,0 | 0x00a0 | KEYCODE_NUMPAD_ENTER | |
0x070x0059 | Teclado 1 e Fim | 0x004f | KEY_KP1 | 3,0 | 0x0091 | KEYCODE_NUMPAD_1 | |
0x070x005a | Teclado 2 e seta para baixo | 0x0050 | KEY_KP2 | 3,0 | 0x0092 | KEYCODE_NUMPAD_2 | |
0x070x005b | Teclado 3 e PageDn | 0x0051 | KEY_KP3 | 3,0 | 0x0093 | KEYCODE_NUMPAD_3 | |
0x070x005c | Teclado 4 e seta para a esquerda | 0x004b | KEY_KP4 | 3,0 | 0x0094 | KEYCODE_NUMPAD_4 | |
0x070x005d | Teclado 5 | 0x004c | KEY_KP5 | 3,0 | 0x0095 | KEYCODE_NUMPAD_5 | |
0x070x005e | Teclado 6 e seta para a direita | 0x004d | KEY_KP6 | 3,0 | 0x0096 | KEYCODE_NUMPAD_6 | |
0x070x005f | Teclado 7 e Início | 0x0047 | KEY_KP7 | 3,0 | 0x0097 | KEYCODE_NUMPAD_7 | |
0x070x0060 | Teclado 8 e seta para cima | 0x0048 | KEY_KP8 | 3,0 | 0x0098 | KEYCODE_NUMPAD_8 | |
0x070x0061 | Teclado 9 e Page Up | 0x0049 | KEY_KP9 | 3,0 | 0x0099 | KEYCODE_NUMPAD_9 | |
0x070x0062 | Teclado 0 e Inserir | 0x0052 | KEY_KP0 | 3,0 | 0x0090 | KEYCODE_NUMPAD_0 | |
0x070x0063 | Teclado . e excluir | 0x0053 | KEY_KPDOT | 3,0 | 0x009e | KEYCODE_NUMPAD_DOT | |
0x070x0064 | Teclado fora dos EUA \ e | | 0x0056 | CHAVE_102ND | 4,0 | 0x0049 | KEYCODE_BACKSLASH | 1 |
0x070x0065 | Aplicação de teclado | 0x007f | KEY_COMPOSE | 3,0 | 0x0052 | KEYCODE_MENU | |
"" | "" | "" | "" | 1.6 | 0x0054 | KEYCODE_SEARCH | |
0x070x0066 | Potência do teclado | 0x0074 | KEY_POWER | 1.6 | 0x001a | KEYCODE_POWER | |
0x070x0067 | Teclado = | 0x0075 | KEY_KPEQUAL | 3,0 | 0x00a1 | KEYCODE_NUMPAD_EQUALS | |
0x070x0068 | Teclado F13 | 0x00b7 | KEY_F13 | ||||
0x070x0069 | Teclado F14 | 0x00b8 | KEY_F14 | ||||
0x070x006a | Teclado F15 | 0x00b9 | KEY_F15 | ||||
0x070x006b | Teclado F16 | 0x00ba | KEY_F16 | ||||
0x070x006c | Teclado F17 | 0x00bb | KEY_F17 | ||||
0x07 0x006d | Teclado F18 | 0x00bc | KEY_F18 | ||||
0x070x006e | Teclado F19 | 0x00bd | KEY_F19 | ||||
0x070x006f | Teclado F20 | 0x00be | KEY_F20 | ||||
0x070x0070 | Teclado F21 | 0x00bf | KEY_F21 | ||||
0x070x0071 | Teclado F22 | 0x00c0 | KEY_F22 | ||||
0x070x0072 | Teclado F23 | 0x00c1 | KEY_F23 | ||||
0x070x0073 | Teclado F24 | 0x00c2 | KEY_F24 | ||||
0x070x0074 | Executar teclado | 0x0086 | KEY_OPEN | ||||
0x070x0075 | Ajuda do teclado | 0x008a | KEY_HELP | ||||
0x070x0076 | Menu do teclado | 0x0082 | KEY_PROPS | ||||
0x070x0077 | Seleção de teclado | 0x0084 | KEY_FRONT | ||||
0x070x0078 | Parada do teclado | 0x0080 | KEY_STOP | 3,0 | 0x0056 | KEYCODE_MEDIA_STOP | |
0x070x0079 | Teclado novamente | 0x0081 | KEY_AGAIN | ||||
0x07 | Desfazer teclado | 0x0083 | KEY_UNDO | ||||
0x070x007b | Corte de teclado | 0x0089 | KEY_CUT | ||||
0x070x007c | Cópia do teclado | 0x0085 | KEY_COPY | ||||
0x07 0x007d | Colar teclado | 0x0087 | KEY_PASTE | ||||
0x07 | Localização do teclado | 0x0088 | KEY_FIND | ||||
0x070x007f | Teclado mudo | 0x0071 | KEY_MUTE | 3,0 | 0x00a4 | KEYCODE_VOLUME_MUTE | |
0x070x0080 | Aumentar o volume do teclado | 0x0073 | KEY_VOLUMEUP | 1.6 | 0x0018 | KEYCODE_VOLUME_UP | |
0x070x0081 | Diminuir volume do teclado | 0x0072 | KEY_VOLUMEDOWN | 1.6 | 0x0019 | KEYCODE_VOLUME_DOWN | |
0x070x0082 | Bloqueio de teclado Caps Lock | ||||||
0x070x0083 | Bloqueio de teclado Num Lock | ||||||
0x070x0084 | Bloqueio de teclado Bloqueio de rolagem | ||||||
0x070x0085 | Vírgula do teclado | 0x0079 | KEY_KPCOMMA | 3,0 | 0x009f | KEYCODE_NUMPAD_COMMA | |
0x070x0086 | Sinal de igual do teclado | ||||||
0x070x0087 | Teclado Internacional1 | 0x0059 | KEY_RO | ||||
0x070x0088 | Teclado Internacional2 | 0x005d | KEY_KATAKANAHIRAGANA | ||||
0x070x0089 | Teclado Internacional3 | 0x007c | KEY_YEN | ||||
0x070x008a | Teclado Internacional4 | 0x005c | KEY_HENKAN | ||||
0x070x008b | Teclado Internacional5 | 0x005e | KEY_MUHENKAN | ||||
0x070x008c | Teclado Internacional6 | 0x005f | KEY_KPJPCOMMA | ||||
0x070x008d | Teclado Internacional7 | ||||||
0x070x008e | Teclado Internacional8 | ||||||
0x070x008f | Teclado Internacional9 | ||||||
0x070x0090 | Teclado LANG1 | 0x007a | KEY_HANGEUL | ||||
0x070x0091 | Teclado LANG2 | 0x007b | KEY_HANJA | ||||
0x070x0092 | Teclado LANG3 | 0x005a | KEY_KATAKANA | ||||
0x070x0093 | Teclado LANG4 | 0x005b | KEY_HIRAGANA | ||||
0x070x0094 | Teclado LANG5 | 0x0055 | KEY_ZENKAKUHANKAKU | ||||
0x070x0095 | Teclado LANG6 | ||||||
0x070x0096 | Teclado LANG7 | ||||||
0x070x0097 | Teclado LANG8 | ||||||
0x070x0098 | Teclado LANG9 | ||||||
0x070x0099 | Apagamento alternativo do teclado | ||||||
0x070x009a | Teclado SysReq/Atenção | ||||||
0x070x009b | Cancelar teclado | ||||||
0x070x009c | Teclado claro | ||||||
0x070x009d | Teclado anterior | ||||||
0x070x009e | Retorno do teclado | ||||||
0x070x009f | Separador de teclado | ||||||
0x070x00a0 | Saída do teclado | ||||||
0x070x00a1 | Operador de teclado | ||||||
0x070x00a2 | Teclado limpo/novamente | ||||||
0x070x00a3 | Teclado CrSel/Adereços | ||||||
0x070x00a4 | Teclado ExSel | ||||||
0x070x00b0 | Teclado 00 | ||||||
0x070x00b1 | Teclado 000 | ||||||
0x070x00b2 | Separador de milhares | ||||||
0x070x00b3 | Separador decimal | ||||||
0x070x00b4 | Unidade monetária | ||||||
0x070x00b5 | Subunidade monetária | ||||||
0x070x00b6 | Teclado ( | 0x00b3 | KEY_KPLEFTPAREN | 3,0 | 0x00a2 | KEYCODE_NUMPAD_LEFT_PAREN | |
0x07 | Teclado) | 0x00b4 | KEY_KPRIGHTPAREN | 3,0 | 0x00a3 | KEYCODE_NUMPAD_RIGHT_PAREN | |
0x070x00b8 | Teclado { | ||||||
0x070x00b9 | Teclado } | ||||||
0x070x00ba | Guia Teclado | ||||||
0x07 0x00bb | Retrocesso do teclado | ||||||
0x07 0x00bc | Teclado A | ||||||
0x07 0x00bd | Teclado B | ||||||
0x07 0x00be | Teclado C | ||||||
0x070x00bf | Teclado D | ||||||
0x070x00c0 | Teclado E | ||||||
0x070x00c1 | Teclado F | ||||||
0x070x00c2 | Teclado XOR | ||||||
0x070x00c3 | Teclado ^ | ||||||
0x070x00c4 | Teclado % | ||||||
0x070x00c5 | Teclado < | ||||||
0x070x00c6 | Teclado > | ||||||
0x07 | Teclado e | ||||||
0x070x00c8 | Teclado && | ||||||
0x070x00c9 | Teclado | | ||||||
0x07 0x00ca | Teclado || | ||||||
0x070x00cb | Teclado: | ||||||
0x07 0x00cc | Teclado # | ||||||
0x07 0x00cd | Espaço do teclado | ||||||
0x07 0x00ce | Teclado @ | ||||||
0x070x00cf | Teclado! | ||||||
0x070x00d0 | Armazenamento de memória do teclado | ||||||
0x070x00d1 | Recuperação de memória do teclado | ||||||
0x070x00d2 | Memória do teclado limpa | ||||||
0x070x00d3 | Adicionar memória do teclado | ||||||
0x070x00d4 | Subtração de memória do teclado | ||||||
0x070x00d5 | Multiplicação de memória do teclado | ||||||
0x070x00d6 | Divisão de memória do teclado | ||||||
0x07 | Teclado +/- | ||||||
0x070x00d8 | Teclado limpo | ||||||
0x070x00d9 | Entrada clara do teclado | ||||||
0x07 0x00da | Teclado binário | ||||||
0x070x00db | Teclado octal | ||||||
0x07 0x00dc | Teclado Decimal | ||||||
0x070x00dd | Teclado Hexadecimal | ||||||
0x070x00e0 | Controle Esquerdo do Teclado | 0x001d | KEY_LEFTCTRL | 3,0 | 0x0071 | KEYCODE_CTRL_LEFT | |
0x070x00e1 | Deslocamento Esquerdo do Teclado | 0x002a | KEY_LEFTSHIFT | 1.6 | 0x003b | KEYCODE_SHIFT_LEFT | |
0x070x00e2 | Alt esquerdo do teclado | 0x0038 | KEY_LEFTALT | 1.6 | 0x0039 | KEYCODE_ALT_LEFT | |
0x070x00e3 | GUI esquerda do teclado | 0x007d | KEY_LEFTMETA | 3,0 | 0x0075 | KEYCODE_META_LEFT | |
0x070x00e4 | Controle direito do teclado | 0x0061 | KEY_RIGHTCTRL | 3,0 | 0x0072 | KEYCODE_CTRL_RIGHT | |
0x070x00e5 | Deslocamento direito do teclado | 0x0036 | KEY_RIGHTSHIFT | 1.6 | 0x003c | KEYCODE_SHIFT_RIGHT | |
0x070x00e6 | Alt direito do teclado | 0x0064 | KEY_RIGHTALT | 1.6 | 0x003a | KEYCODE_ALT_RIGHT | |
0x07 | GUI direita do teclado | 0x007e | KEY_RIGHTMETA | 3,0 | 0x0076 | KEYCODE_META_RIGHT | |
0x070x00e8 | 0x00a4 | KEY_PLAYPAUSE | 3,0 | 0x0055 | KEYCODE_MEDIA_PLAY_PAUSE | ||
0x070x00e9 | 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 | ||
0x070x00f0 | 0x0096 | KEY_WWW | 1.6 | 0x0040 | KEYCODE_EXPLORER | ||
0x070x00f1 | 0x009e | KEY_BACK | 1.6 | 0x0004 | KEYCODE_BACK | ||
0x070x00f2 | 0x009f | KEY_FORWARD | 3,0 | 0x007d | KEYCODE_FORWARD | ||
0x070x00f3 | 0x0080 | KEY_STOP | 3,0 | 0x0056 | KEYCODE_MEDIA_STOP | ||
0x070x00f4 | 0x0088 | KEY_FIND | |||||
0x070x00f5 | 0x00b1 | KEY_SCROLLUP | 3,0 | 0x005c | KEYCODE_PAGE_UP | ||
0x070x00f6 | 0x00b2 | KEY_SCROLLDOWN | 3,0 | 0x005d | KEYCODE_PAGE_DOWN | ||
0x07 | 0x00b0 | KEY_EDIT | |||||
0x070x00f8 | 0x008e | KEY_SLEEP | |||||
0x070x00f9 | 0x0098 | KEY_COFFEE | 4,0 | 0x001a | KEYCODE_POWER | ||
0x07 0x00fa | 0x00 anúncio | KEY_REFRESH | |||||
0x07 0x00fb | 0x008c | KEY_CALC | 4.0.3 | 0x00d2 | KEYCODE_CALCULADORA |
Página genérica do HID para desktop (0x01)
Uso HID | Nome de uso HID | LKC | Nome do código-chave do Linux | Versão | AKC | Nome do código-chave do Android | Notas |
---|---|---|---|---|---|---|---|
0x01 0x0081 | Desligamento do sistema | 0x0074 | KEY_POWER | 1.6 | 0x001a | KEYCODE_POWER | |
0x01 0x0082 | Suspensão do sistema | 0x008e | KEY_SLEEP | 4,0 | 0x001a | KEYCODE_POWER | |
0x010x0083 | Ativação do sistema | 0x008f | KEY_WAKEUP | 4,0 | 0x001a | KEYCODE_POWER | |
0x010x0084 | Menu de contexto do sistema | ||||||
0x010x0085 | Menu principal do sistema | ||||||
0x010x0086 | Menu de aplicativos do sistema | ||||||
0x010x0087 | Ajuda do menu do sistema | ||||||
0x010x0088 | Sair do menu do sistema | ||||||
0x010x0089 | Seleção do menu do sistema | ||||||
0x010x008a | Menu do sistema à direita | ||||||
0x010x008b | Menu do sistema à esquerda | ||||||
0x010x008c | Menu do sistema acima | ||||||
0x01 0x008d | Menu do sistema para baixo | ||||||
0x010x008e | Reinicialização a frio do sistema | ||||||
0x010x008f | Reinicialização a quente do sistema | ||||||
0x01 0x00a0 | Doca do sistema | ||||||
0x01 | Desencaixe do sistema | ||||||
0x01 0x00a2 | Configuração do sistema | ||||||
0x01 0x00a3 | Quebra do sistema | ||||||
0x01 0x00a4 | Quebra do depurador do sistema | ||||||
0x01 0x00a5 | Intervalo de aplicação | ||||||
0x01 0x00a6 | Pausa no depurador de aplicativos | ||||||
0x01 0x00a7 | Alto-falante do sistema mudo | ||||||
0x01 0x00a8 | Hibernação do sistema | ||||||
0x01 0x00b0 | Inversão de exibição do sistema | ||||||
0x01 | Exibição do sistema interna | ||||||
0x01 0x00b2 | Exibição do sistema externa | ||||||
0x01 0x00b3 | Exibição do sistema ambos | ||||||
0x01 0x00b4 | Exibição do sistema dupla | ||||||
0x01 0x00b5 | Alternar exibição do sistema Int/Ext | ||||||
0x01 0x00b6 | Troca de Exibição do Sistema Prim./Seg. | ||||||
0x01 0x00b7 | Tela LCD de exibição do sistema com escala automática |
Página do consumidor HID (0x0c)
Uso HID | Nome de uso HID | LKC | Nome do código-chave do Linux | Versão | AKC | Nome do código-chave do Android | Notas |
---|---|---|---|---|---|---|---|
0x0c 0x0030 | Poder | ||||||
0x0c0x0031 | Reiniciar | ||||||
0x0c0x0032 | Dormir | ||||||
0x0c0x0033 | Dormir depois | ||||||
0x0c0x0034 | Modo dormir | 0x008e | KEY_SLEEP | 4,0 | 0x001a | KEYCODE_POWER | |
0x0c0x0040 | Cardápio | 0x008b | KEY_MENU | 1.6 | 0x0052 | KEYCODE_MENU | |
0x0c0x0041 | Escolha do cardápio | ||||||
0x0c0x0042 | Menu acima | ||||||
0x0c0x0043 | Menu abaixo | ||||||
0x0c0x0044 | Menu à esquerda | ||||||
0x0c0x0045 | Menu à direita | 0x0181 | KEY_RIGHT | ||||
0x0c0x0046 | Escape do menu | ||||||
0x0c0x0047 | Aumento do valor do menu | ||||||
0x0c0x0048 | Diminuição do valor do menu | ||||||
0x0c0x0067 | Alternar imagem em imagem | 0x00ab | KEYCODE_WINDOW | Adicionado em aosp/1365553 | |||
0x0c0x0069 | Botão de menu vermelho | 0x18e | KEY_RED | 0x00b7 | KEYCODE_PROG_RED | Adicionado em aosp/1388616 | |
0x0c 0x006a | Botão de menu verde | 0x18f | KEY_GREEN | 0x00b8 | KEYCODE_PROG_GREEN | Adicionado em aosp/1388616 | |
0x0c 0x006b | Botão de menu azul | 0x191 | KEY_BLUE | 0x00ba | KEYCODE_PROG_BLUE | Adicionado em aosp/1388616 | |
0x0c 0x006c | Botão de menu amarelo | 0x190 | KEY_YELLOW | 0x00b9 | KEYCODE_PROG_YELLOW | Adicionado em aosp/1388616 | |
0x0c0x0081 | Atribuir seleção | ||||||
0x0c0x0082 | Etapa do modo | ||||||
0x0c0x0083 | Recuperar o último | 0x0195 | KEY_LAST | 0xe5 | KEYCODE_LAST_CHANNEL | Adicionado em aosp/1365551 | |
0x0c0x0084 | Entrar no canal | ||||||
0x0c0x0085 | Encomendar filme | ||||||
0x0c0x0088 | Mídia Selecionar Computador | 0x0178 | KEY_PC | ||||
0x0c0x0089 | Seleção de mídia TV | 0x0179 | KEY_TV | 3,0 | 0x00aa | KEYCODE_TV | |
0x0c 0x008a | Seleção de mídia WWW | 0x0096 | KEY_WWW | 1.6 | 0x0040 | KEYCODE_EXPLORER | |
0x0c 0x008b | DVD de seleção de mídia | 0x0185 | KEY_DVD | ||||
0x0c 0x008c | Telefone de seleção de mídia | 0x00a9 | KEY_PHONE | 3,0 | 0x0005 | KEYCODE_CALL | |
0x0c 0x008d | Guia do programa de seleção de mídia | 0x016a | KEY_PROGRAM | 3,0 | 0x00ac | KEYCODE_GUIDE | |
0x0c 0x008e | Media Select Videofone | 0x01a0 | KEY_VIDEOFONE | ||||
0x0c 0x008f | Jogos de seleção de mídia | 0x01a1 | KEY_GAMES | ||||
0x0c0x0090 | Mensagens de seleção de mídia | 0x018c | KEY_MEMO | ||||
0x0c0x0091 | CD de seleção de mídia | 0x017f | KEY_CD | ||||
0x0c0x0092 | Videocassete de seleção de mídia | 0x017b | KEY_VCR | ||||
0x0c0x0093 | Sintonizador de seleção de mídia | 0x0182 | KEY_TUNER | ||||
0x0c0x0094 | Desistir | 0x00ae | KEY_EXIT | ||||
0x0c0x0095 | Ajuda | 0x008a | KEY_HELP | ||||
0x0c0x0096 | Fita de seleção de mídia | 0x0180 | KEY_TAPE | ||||
0x0c0x0097 | Cabo de seleção de mídia | 0x017a | KEY_TV2 | ||||
0x0c 0x0098 | Satélite de seleção de mídia | 0x017d | KEY_SAT | ||||
0x0c 0x0099 | Segurança de seleção de mídia | ||||||
0x0c 0x009a | Página inicial de seleção de mídia | 0x016e | KEY_PVR | 3,0 | 0x00 anúncio | KEYCODE_DVR | |
0x0c0x0061 | Legenda | 0x0172 | KEY_SUBTITLE | 0x00af | KEYCODE_CAPTIONS | Adicionado em aosp/1365552 | |
0x0c 0x009c | Incremento do 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 | Seleção de mídia SAP | ||||||
0x0c 0x00a0 | Videocassete Plus | 0x017c | KEY_VCR2 | ||||
0x0c 0x00a1 | Uma vez | ||||||
0x0c 0x00a2 | Diário | ||||||
0x0c 0x00a3 | Semanalmente | ||||||
0x0c 0x00a4 | Por mês | ||||||
0x0c 0x00b0 | Jogar | 0x00cf | KEY_PLAY | 3,0 | 0x007e | KEYCODE_MEDIA_PLAY | |
0x0c 0x00b1 | Pausa | 0x0077 | KEY_PAUSE | 3,0 | 0x0079 | KEYCODE_BREAK | |
0x0c 0x00b2 | Registro | 0x00a7 | KEY_RECORD | 3,0 | 0x0082 | KEYCODE_MEDIA_RECORD | |
0x0c 0x00b3 | Avanço rápido | 0x00d0 | KEY_FASTFORWARD | 3,0 | 0x005a | KEYCODE_MEDIA_FAST_FORWARD | |
0x0c 0x00b4 | Retroceder | 0x00a8 | KEY_REWIND | 3,0 | 0x0059 | KEYCODE_MEDIA_REWIND | |
0x0c 0x00b5 | Digitalizar a próxima faixa | 0x00a3 | KEY_NEXTSONG | 3,0 | 0x0057 | KEYCODE_MEDIA_NEXT | |
0x0c 0x00b6 | Digitalizar 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 | KEY_EJECTCD | 3,0 | 0x0081 | KEYCODE_MEDIA_EJECT | |
0x0c 0x00b9 | Jogada aleatória | ||||||
0x0c 0x00ba | Selecione o disco | ||||||
0x0c 0x00bb | Insira o disco | ||||||
0x0c 0x00bc | Repita | 0x01b7 | KEY_MEDIA_REPEAT | ||||
0x0c 0x00be | Rastrear normalmente | ||||||
0x0c0x00c0 | Quadro para frente | ||||||
0x0c 0x00c1 | Quadro de volta | ||||||
0x0c 0x00c2 | Marca | ||||||
0x0c 0x00c3 | Marca clara | ||||||
0x0c 0x00c4 | Repetir da marca | ||||||
0x0c 0x00c5 | Voltar para marcar | ||||||
0x0c 0x00c6 | Marcar pesquisa para frente | ||||||
0x0c 0x00c7 | Marca de pesquisa para trás | ||||||
0x0c 0x00c8 | Reinicialização do contador | ||||||
0x0c 0x00c9 | Mostrar contador | ||||||
0x0c 0x00ca | Incremento de rastreamento | ||||||
0x0c 0x00cb | Decremento de rastreamento | ||||||
0x0c 0x00cc | Parar/Ejetar | ||||||
0x0c 0x00cd | A pausa | 0x00a4 | KEY_PLAYPAUSE | 3,0 | 0x0055 | KEYCODE_MEDIA_PLAY_PAUSE | |
0x0c 0x00ce | Reproduzir / Pular | ||||||
0x0c 0x00e2 | Mudo | 0x0071 | KEY_MUTE | 3,0 | 0x00a4 | KEYCODE_VOLUME_MUTE | |
0x0c 0x00e5 | Aumento de graves | 0x00d1 | KEY_BASSBOOST | ||||
0x0c 0x00e6 | Modo surround | ||||||
0x0c 0x00e7 | Volume | ||||||
0x0c 0x00e8 | MPX | ||||||
0x0c 0x00e9 | Incremento de volume | 0x0073 | KEY_VOLUMEUP | 1.6 | 0x0018 | KEYCODE_VOLUME_UP | |
0x0c 0x00ea | Diminuição de volume | 0x0072 | KEY_VOLUMEDOWN | 1.6 | 0x0019 | KEYCODE_VOLUME_DOWN | |
0x0c0x0173 | Incremento de áudio alternativo | 0x00de | KEYCODE_MEDIA_AUDIO_TRACK | Adicionado em aosp/1365554 | |||
0x0c0x0181 | Configuração do botão de inicialização AL. Ferramenta | ||||||
0x0c0x0182 | Configuração do botão programável AL. | 0x009c | KEY_BOOKMARKS | 3,0 | 0x00ae | KEYCODE_BOOKMARK | |
0x0c0x0183 | Configuração de controle do consumidor AL. | 0x00ab | KEY_CONFIG | 4.0.3 | 0x00d1 | KEYCODE_MUSIC | |
0x0c0x0184 | Processador de texto AL | 0x01a5 | KEY_WORDPROCESSOR | ||||
0x0c0x0185 | Editor de texto AL | 0x01a6 | KEY_EDITOR | ||||
0x0c0x0186 | Planilha AL | 0x01a7 | KEY_SPREADSHEET | ||||
0x0c0x0187 | Editor Gráfico AL | 0x01a8 | KEY_GRAPHICSEDITOR | ||||
0x0c0x0188 | Aplicativo de apresentação AL | 0x01a9 | KEY_PRESENTATION | ||||
0x0c0x0189 | Aplicativo de banco de dados AL | 0x01aa | KEY_DATABASE | ||||
0x0c 0x018a | Leitor de e-mail AL | 0x009b | KEY_MAIL | 1.6 | 0x0041 | KEYCODE_ENVELOPE | |
0x0c 0x018b | Leitor de notícias AL | 0x01ab | KEY_NEWS | ||||
0x0c 0x018c | Correio de voz AL | 0x01ac | KEY_VOICEMAIL | ||||
0x0c 0x018d | Contatos AL / Catálogo de endereços | 0x01 anúncio | KEY_ADDRESSBOOK | 4.0.3 | 0x00cf | KEYCODE_CONTACTS | |
0x0c 0x018e | Calendário / Programação AL | 0x018d | KEY_CALENDAR | 4.0.3 | 0x00d0 | KEYCODE_CALENDAR | |
0x0c 0x018f | Gerente de Tarefas / Projetos AL | ||||||
0x0c0x0190 | AL Log / Diário / Cartão de ponto | ||||||
0x0c0x0191 | AL Talão de Cheques / Finanças | 0x00db | KEY_FINANCE | ||||
0x0c0x0192 | Calculadora AL | 0x008c | KEY_CALC | 4.0.3 | 0x00d2 | KEYCODE_CALCULADORA | |
0x0c0x0193 | Captura/reprodução AL A/V | ||||||
0x0c0x0194 | AL Navegador de máquina local | 0x0090 | KEY_FILE | ||||
0x0c0x0195 | Navegador AL LAN/WAN | ||||||
0x0c0x0196 | AL Navegador de Internet | 0x0096 | KEY_WWW | 1.6 | 0x0040 | KEYCODE_EXPLORER | |
0x0c0x0197 | AL Rede Remota/Conexão ISP | ||||||
0x0c0x0198 | Conferência da Rede AL | ||||||
0x0c0x0199 | Bate-papo da rede AL | 0x00d8 | KEY_CHAT | ||||
0x0c 0x019a | AL Telefonia / Discador | ||||||
0x0c 0x019b | Logon AL | ||||||
0x0c 0x019c | Sair do AL | 0x01b1 | KEY_LOGOFF | ||||
0x0c 0x019d | AL Logon/Logoff | ||||||
0x0c 0x019e | Bloqueio de terminal AL / protetor de tela | 0x0098 | KEY_COFFEE | 4,0 | 0x001a | KEYCODE_POWER | |
0x0c 0x019f | Painel de controle AL | ||||||
0x0c 0x01a0 | Processador / execução de linha de comando AL | ||||||
0x0c 0x01a1 | Gerenciador de Processos / Tarefas AL | ||||||
0x0c 0x01a2 | AL Selecionar Tarefa/Aplicativo | ||||||
0x0c 0x01a3 | AL Próxima Tarefa/Aplicativo | ||||||
0x0c 0x01a4 | AL Tarefa/Aplicação Anterior | ||||||
0x0c 0x01a5 | Tarefa/aplicativo de parada preventiva AL. | ||||||
0x0c 0x01a6 | Centro de Ajuda Integrado AL | 0x008a | KEY_HELP | ||||
0x0c 0x01a7 | Documentos AL | 0x00eb | KEY_DOCUMENTS | ||||
0x0c 0x01a8 | Dicionário de sinônimos AL | ||||||
0x0c 0x01a9 | Dicionário AL | ||||||
0x0c 0x01aa | AL Desktop | ||||||
0x0c 0x01ab | Verificação ortográfica de AL | 0x01b0 | KEY_SPELLCHECK | ||||
0x0c 0x01ac | Verificação gramatical AL | ||||||
0x0c 0x01ad | Status sem fio AL | ||||||
0x0c 0x01ae | Layout do teclado AL | ||||||
0x0c 0x01af | Proteção contra vírus AL | ||||||
0x0c 0x01b0 | Criptografia AL | ||||||
0x0c 0x01b1 | Protetor de tela AL | ||||||
0x0c 0x01b2 | Alarmes AL | ||||||
0x0c 0x01b3 | Relógio AL | ||||||
0x0c 0x01b4 | AL Navegador de arquivos | ||||||
0x0c 0x01b5 | Status de energia AL | ||||||
0x0c 0x01b6 | Navegador de imagens AL | 0x00e2 | KEY_MEDIA | 3,0 | 0x004f | KEYCODE_HEADSETHOOK | |
0x0c 0x01b7 | Navegador de áudio AL | 0x00d5 | KEY_SOUND | 4.0.3 | 0x00d1 | KEYCODE_MUSIC | |
0x0c 0x01b8 | Navegador de filmes AL | ||||||
0x0c 0x01b9 | Gerente de Direitos Digitais da AL | ||||||
0x0c 0x01ba | AL Digital Wallet | ||||||
0x0c 0x01bc | AL Instant Messaging | 0x01ae | KEY_MESSENGER | ||||
0x0c 0x01bd | AL OEM Features / Tips Browser | 0x0166 | KEY_INFO | ||||
0x0c 0x01be | AL OEM Help | ||||||
0x0c 0x01bf | AL Online Community | ||||||
0x0c 0x01c0 | AL Entertainment Content Browser | ||||||
0x0c 0x01c1 | AL Online Shopping Browser | ||||||
0x0c 0x01c2 | AL SmartCard Information / Help | ||||||
0x0c 0x01c3 | AL Market / Finance Browser | ||||||
0x0c 0x01c4 | AL Customized Corp. News Browser | ||||||
0x0c 0x01c5 | AL Online Activity Browser | ||||||
0x0c 0x01c6 | AL Research / Search Browser | ||||||
0x0c 0x01c7 | AL Audio Player | ||||||
0x0c 0x0201 | AC New | 0x00b5 | KEY_NEW | ||||
0x0c 0x0202 | AC Open | 0x0086 | KEY_OPEN | ||||
0x0c 0x0203 | AC Close | 0x00ce | KEY_CLOSE | ||||
0x0c 0x0204 | AC Exit | 0x00ae | KEY_EXIT | ||||
0x0c 0x0205 | AC Maximize | ||||||
0x0c 0x0206 | AC Minimize | ||||||
0x0c 0x0207 | AC Save | 0x00ea | KEY_SAVE | ||||
0x0c 0x0208 | AC Print | 0x00d2 | KEY_PRINT | ||||
0x0c 0x0209 | AC Properties | 0x0082 | KEY_PROPS | ||||
0x0c 0x021a | AC Undo | 0x0083 | KEY_UNDO | ||||
0x0c 0x021b | AC Copy | 0x0085 | KEY_COPY | ||||
0x0c 0x021c | AC Cut | 0x0089 | KEY_CUT | ||||
0x0c 0x021d | AC Paste | 0x0087 | KEY_PASTE | ||||
0x0c 0x021e | AC Select All | ||||||
0x0c 0x021f | AC Find | 0x0088 | KEY_FIND | ||||
0x0c 0x0220 | AC Find and Replace | ||||||
0x0c 0x0221 | AC Search | 0x00d9 | KEY_SEARCH | 1.6 | 0x0054 | KEYCODE_SEARCH | |
0x0c 0x0222 | AC Go To | 0x0162 | KEY_GOTO | ||||
0x0c 0x0223 | AC Home | 0x00ac | KEY_HOMEPAGE | 3.0 | 0x0003 | KEYCODE_HOME | |
0x0c 0x0224 | AC Back | 0x009e | KEY_BACK | 1.6 | 0x0004 | KEYCODE_BACK | |
0x0c 0x0225 | AC Forward | 0x009f | KEY_FORWARD | 3.0 | 0x007d | KEYCODE_FORWARD | |
0x0c 0x0226 | AC Stop | 0x0080 | KEY_STOP | 3.0 | 0x0056 | KEYCODE_MEDIA_STOP | |
0x0c 0x0227 | AC Refresh | 0x00ad | KEY_REFRESH | ||||
0x0c 0x0228 | AC Previous Link | ||||||
0x0c 0x0229 | AC Next Link | ||||||
0x0c 0x022a | AC Bookmarks | 0x009c | KEY_BOOKMARKS | 3.0 | 0x00ae | KEYCODE_BOOKMARK | |
0x0c 0x022b | AC History | ||||||
0x0c 0x022c | AC Subscriptions | ||||||
0x0c 0x022d | AC Zoom In | 0x01a2 | KEY_ZOOMIN | ||||
0x0c 0x022e | AC Zoom Out | 0x01a3 | KEY_ZOOMOUT | ||||
0x0c 0x022f | AC Zoom | 0x01a4 | KEY_ZOOMRESET | 2 | |||
0x0c 0x0230 | AC Full Screen View | ||||||
0x0c 0x0231 | AC Normal View | ||||||
0x0c 0x0232 | AC View Toggle | ||||||
0x0c 0x0233 | AC Scroll Up | 0x00b1 | KEY_SCROLLUP | 3.0 | 0x005c | KEYCODE_PAGE_UP | |
0x0c 0x0234 | AC Scroll Down | 0x00b2 | KEY_SCROLLDOWN | 3.0 | 0x005d | KEYCODE_PAGE_DOWN | |
0x0c 0x0236 | AC Pan Left | ||||||
0x0c 0x0237 | AC Pan Right | ||||||
0x0c 0x0239 | AC New Window | ||||||
0x0c 0x023a | AC Tile Horizontally | ||||||
0x0c 0x023b | AC Tile Vertically | ||||||
0x0c 0x023c | AC Format | ||||||
0x0c 0x023d | AC Edit | ||||||
0x0c 0x023e | AC Bold | ||||||
0x0c 0x023f | AC Italics | ||||||
0x0c 0x0240 | AC Underline | ||||||
0x0c 0x0241 | AC Strikethrough | ||||||
0x0c 0x0242 | AC Subscript | ||||||
0x0c 0x0243 | AC Superscript | ||||||
0x0c 0x0244 | AC All Caps | ||||||
0x0c 0x0245 | AC Rotate | ||||||
0x0c 0x0246 | AC Resize | ||||||
0x0c 0x0247 | AC Flip horizontal | ||||||
0x0c 0x0248 | AC Flip Vertical | ||||||
0x0c 0x0249 | AC Mirror Horizontal | ||||||
0x0c 0x024a | AC Mirror Vertical | ||||||
0x0c 0x024b | AC Font Select | ||||||
0x0c 0x024c | AC Font Color | ||||||
0x0c 0x024d | AC Font Size | ||||||
0x0c 0x024e | AC Justify Left | ||||||
0x0c 0x024f | AC Justify Center H | ||||||
0x0c 0x0250 | AC Justify Right | ||||||
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 | AC Indent Decrease | ||||||
0x0c 0x0257 | AC Indent Increase | ||||||
0x0c 0x0258 | AC Numbered List | ||||||
0x0c 0x0259 | AC Restart Numbering | ||||||
0x0c 0x025a | AC Bulleted List | ||||||
0x0c 0x025b | AC Promote | ||||||
0x0c 0x025c | AC Demote | ||||||
0x0c 0x025d | AC Yes | ||||||
0x0c 0x025e | AC No | ||||||
0x0c 0x025f | AC Cancel | 0x00df | KEY_CANCEL | ||||
0x0c 0x0260 | AC Catalog | ||||||
0x0c 0x0261 | AC Buy / Checkout | ||||||
0x0c 0x0262 | AC Add to Cart | ||||||
0x0c 0x0263 | AC Expand | ||||||
0x0c 0x0264 | AC Expand All | ||||||
0x0c 0x0265 | AC Collapse | ||||||
0x0c 0x0266 | AC Collapse All | ||||||
0x0c 0x0267 | AC Print Preview | ||||||
0x0c 0x0268 | AC Paste Special | ||||||
0x0c 0x0269 | AC Insert Mode | ||||||
0x0c 0x026a | AC Delete | ||||||
0x0c 0x026b | AC Lock | ||||||
0x0c 0x026c | AC Unlock | ||||||
0x0c 0x026d | AC Protect | ||||||
0x0c 0x026e | AC Unprotect | ||||||
0x0c 0x026f | AC Attach Comment | ||||||
0x0c 0x0270 | AC Delete Comment | ||||||
0x0c 0x0271 | AC View Comment | ||||||
0x0c 0x0272 | AC Select Word | ||||||
0x0c 0x0273 | AC Select Sentence | ||||||
0x0c 0x0274 | AC Select Paragraph | ||||||
0x0c 0x0275 | AC Select Column | ||||||
0x0c 0x0276 | AC Select Row | ||||||
0x0c 0x0277 | AC Select Table | ||||||
0x0c 0x0278 | AC Select Object | ||||||
0x0c 0x0279 | AC Redo / Repeat | 0x00b6 | KEY_REDO | ||||
0x0c 0x027a | AC Sort | ||||||
0x0c 0x027b | AC Sort Ascending | ||||||
0x0c 0x027c | AC Sort Descending | ||||||
0x0c 0x027d | AC Filter | ||||||
0x0c 0x027e | AC Set Clock | ||||||
0x0c 0x027f | AC View Clock | ||||||
0x0c 0x0280 | AC Select Time Zone | ||||||
0x0c 0x0281 | AC Edit Time Zones | ||||||
0x0c 0x0282 | AC Set Alarm | ||||||
0x0c 0x0283 | AC Clear Alarm | ||||||
0x0c 0x0284 | AC Snooze Alarm | ||||||
0x0c 0x0285 | AC Reset Alarm | ||||||
0x0c 0x0286 | AC Synchronize | ||||||
0x0c 0x0287 | AC Send/Receive | ||||||
0x0c 0x0288 | AC Send To | ||||||
0x0c 0x0289 | AC Reply | 0x00e8 | KEY_REPLY | ||||
0x0c 0x028a | AC Reply All | ||||||
0x0c 0x028b | AC Forward Msg | 0x00e9 | KEY_FORWARDMAIL | ||||
0x0c 0x028c | AC Send | 0x00e7 | KEY_SEND | ||||
0x0c 0x028d | AC Attach File | ||||||
0x0c 0x028e | AC Upload | ||||||
0x0c 0x028f | AC Download (Save Target As) | ||||||
0x0c 0x0290 | AC Set Borders | ||||||
0x0c 0x0291 | AC Insert Row | ||||||
0x0c 0x0292 | AC Insert Column | ||||||
0x0c 0x0293 | AC Insert File | ||||||
0x0c 0x0294 | AC Insert Picture | ||||||
0x0c 0x0295 | AC Insert Object | ||||||
0x0c 0x0296 | AC Insert Symbol | ||||||
0x0c 0x0297 | AC Save and Close | ||||||
0x0c 0x0298 | AC Rename | ||||||
0x0c 0x0299 | AC Merge | ||||||
0x0c 0x029a | AC Split | ||||||
0x0c 0x029b | AC Distribute Horizontally | ||||||
0x0c 0x029c | AC Distribute Vertically |
Additional non-HID mappings
These mappings describe functions that do not appear in HID but for which Linux key codes exist.
LKC | Linux Key Code Name | Versão | AKC | Android Key Code Name | 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 unsupported keys
These mappings appeared in previous versions of Android but were inconsistent with HID or used non-standard Linux key codes. They are no longer supported.
LKC | Linux Key Code Name | Versão | AKC | Android Key Code Name | Notas |
---|---|---|---|---|---|
0x00db | KEY_EMAIL | 1.6 | 0x004d | KEYCODE_AT | 4 |
"" | "" | 4,0 | 4 | ||
0x00e3 | KEY_STAR | 1.6 | 0x0011 | KEYCODE_STAR | 4 |
"" | "" | 4,0 | 4 | ||
0x00e4 | KEY_SHARP | 1.6 | 0x0012 | KEYCODE_POUND | 4 |
"" | "" | 4,0 | 4 | ||
0x00e5 | KEY_SOFT1 | 1.6 | 0x0052 | KEYCODE_MENU | 4 |
"" | "" | 4,0 | 4 | ||
0x00e6 | KEY_SOFT2 | 1.6 | 0x0002 | KEYCODE_SOFT_RIGHT | 4 |
"" | "" | 4,0 | 4 | ||
0x00e7 | KEY_SEND | 1.6 | 0x0005 | KEYCODE_CALL | 4 |
"" | "" | 4,0 | 4 | ||
0x00e8 | KEY_CENTER | 1.6 | 0x0017 | KEYCODE_DPAD_CENTER | 4 |
"" | "" | 4,0 | 4 | ||
0x00e9 | KEY_HEADSETHOOK | 1.6 | 0x004f | KEYCODE_HEADSETHOOK | 4 |
"" | "" | 4,0 | 4 | ||
0x00ea | KEY_0_5 | 1.6 | 4 | ||
0x00eb | KEY_2_5 | 1.6 | 4 |
Notas
The Android key code associated with common alphanumeric and symbolic keys may vary based on the keyboard layout and language. For historical reasons, the physical scan codes and HID usages associated with keys on a keyboard are often defined positionally even though the labels printed on those keys may vary from one language to another.
On a US English (QWERTY) keyboard, the top-left alphabetic key is labeled Q. On a French (AZERTY) keyboard, the key in the same position is labeled A. Despite the label, on both keyboards the top-left alphabetic key is referred to using the HID usage 0x07 0x0014 which is mapped to the Linux key code KEY_Q.
When Android is configured with a US English keyboard layout, then the Linux key code KEY_Q will be mapped to the Android key code KEYCODE_Q and will produce the characters 'Q' and 'q'. However, when Android is configured with a French keyboard layout, then the Linux key code KEY_Q will be mapped to the Android key code KEYCODE_A and will produce the characters 'A' and 'a'.
The Android key code typically reflects the language-specific interpretation of the key, so a different Android key code may be used for different languages.
0x0c 0x022f AC Zoom
is defined in the HID as a linear control but the kernel maps it as a key, which is probably incorrect.The Linux function keys
KEY_FN_*
are mapped to simpler key codes but are dispatched with theMETA_FUNCTION
meta state bit set to true.Prior to Android Ice Cream Sandwich 4.0, the default key layout contained mappings for some extra key codes that were not defined in the mainline Linux kernel headers. These mappings have since been removed because these previously undefined key codes have since been assigned different meanings in more recent versions of the Linux kernel.
Fontes
- USB HID Usage Tables v1.12
- Linux 2.6.39 kernel: include/linux/input.h, drivers/hid/hid-input.c
- Android ICS: qwerty.kl, Generic.kl, KeyEvent.java