O Android suporta uma variedade de dispositivos de teclado, incluindo teclados de função especial (controles de volume e energia), teclados QWERTY incorporados compactos e teclados externos estilo PC com todos os recursos.
Este documento descreve apenas teclados físicos. Consulte o Android SDK para obter informações sobre teclados virtuais (Input Method Editors).
Classificação do teclado
Um dispositivo de entrada é classificado como teclado se uma das seguintes condições ocorrer:
O dispositivo de entrada relata a presença de qualquer código de tecla do Linux usado em teclados, incluindo
0
a0xff
ouKEY_OK
aKEY_MAX
.O dispositivo de entrada informa a presença de qualquer código de tecla do Linux usado 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 fazem uso de arquivos de mapa de teclas para configuração.
Depois que um dispositivo de entrada é classificado como teclado, o sistema carrega o arquivo de configuração do dispositivo de entrada e o layout do teclado para o teclado.
O sistema então tenta determinar características adicionais do dispositivo.
Se o dispositivo de entrada tiver alguma tecla mapeada para
KEYCODE_Q
, 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 teclas mapeadas para
KEYCODE_DPAD_UP
,KEYCODE_DPAD_DOWN
,KEYCODE_DPAD_LEFT
,KEYCODE_DPAD_RIGHT
eKEYCODE_DPAD_CENTER
(todos devem estar presentes), 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, o dispositivo será considerado como tendo um gamepad.
Requisitos do driver do teclado
Drivers de teclado só devem registrar códigos de teclas para as teclas que eles 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 do dispositivo.
Drivers de teclado devem usar
EV_KEY
para relatar pressionamentos de tecla, usando um valor de0
para indicar que uma tecla foi liberada, um valor de1
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 ser desabilitada no driver.
Os drivers de teclado podem opcionalmente indicar o uso do HID ou o código de varredura de baixo nível enviando
EV_MSC
comMSC_SCANCODE
e um valor que indica o uso ou o código de varredura quando a tecla é pressionada. Esta informação não é usada atualmente pelo Android.Drivers de teclado devem suportar a configuração de estados de LED quando
EV_LED
é gravado no dispositivo. O driverhid-input
trata disso automaticamente. No momento da redação deste artigo, o Android usaLED_CAPSLOCK
,LED_SCROLLLOCK
eLED_NUMLOCK
. Esses LEDs só precisam ser suportados quando o teclado realmente tiver as luzes indicadoras associadas.Drivers de teclado para teclados integrados (por exemplo, usando uma matriz GPIO) devem certificar-se de enviar eventos
EV_KEY
com um valor de0
para quaisquer teclas que ainda estejam pressionadas quando o dispositivo estiver em modo de suspensão. Caso contrário, as teclas podem ficar presas e se repetirão automaticamente para sempre.
Operação do teclado
A seguir, um breve resumo da operação do teclado no Android.
O
EventHub
lê eventos brutos do driverevdev
e mapeia os códigos de teclas do Linux (às vezes chamados de códigos de varredura) em códigos de teclas 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
acordo.O
InputReader
notifica oInputDispatcher
sobre o evento de chave.O
InputDispatcher
pergunta aoWindowManagerPolicy
o que fazer com o evento de chave chamandoWindowManagerPolicy.interceptKeyBeforeQueueing
. Este método faz parte de um caminho crítico que é 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 seja 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 em todo o sistema de baixo nível.O
InputDispatcher
enfileira a chave para processamento no encadeamento de expedição.Quando o
InputDispatcher
retira a chave da fila, ele dá aWindowManagerPolicy
uma segunda chance de interceptar o evento de chave chamandoWindowManagerPolicy.interceptKeyBeforeDispatching
. Este método lida com atalhos do sistema e outras funções.O
InputDispatcher
então identifica o destino do evento chave (a janela focada) e espera que eles fiquem prontos. Em seguida, oInputDispatcher
entrega o evento de chave ao aplicativo.Dentro do aplicativo, o evento de chave se propaga pela hierarquia de exibição para a exibição focada para o envio de chave pré-IME.
Se o evento de chave não for tratado no despacho pré-IME e um IME estiver em uso, o evento de chave será entregue ao IME.
Se o evento de chave não foi consumido pelo IME, o evento de chave se propaga na hierarquia de exibição para a exibição focada para o envio de chave padrão.
O aplicativo informa ao
InputDispatcher
se o evento de chave foi consumido. Se o evento não foi consumido, oInputDispatcher
chamaWindowManagerPolicy.dispatchUnhandledKey
para aplicar o comportamento de "retorno". Dependendo da ação de fallback, o ciclo de despacho de evento de chave pode ser reiniciado usando um código de chave diferente. Por exemplo, se um aplicativo não manipularKEYCODE_ESCAPE
, o sistema poderá reenviar o evento de chave comoKEYCODE_BACK
.
Configuração do teclado
O comportamento do teclado é determinado pelo layout das teclas do teclado, mapa de caracteres das teclas e 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 de chave
- Arquivos de mapa de caracteres-chave
- Arquivos de configuração do dispositivo de entrada
Propriedades
As seguintes propriedades de configuração do dispositivo de entrada são usadas para teclados.
keyboard.layout
Definição: keyboard.layout
= <nome>
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 chave padrão.
Os espaços no nome são convertidos em sublinhados durante a pesquisa.
Consulte a documentação do arquivo de layout de chave para obter mais detalhes.
keyboard.characterMap
Definição: keyboard.characterMap
= <nome>
Especifica o nome do arquivo de mapa de caracteres chave associado ao dispositivo de entrada, excluindo a extensão .kcm
. Se esse arquivo não for encontrado, o sistema de entrada usará o mapa de caracteres de 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-chave para obter mais detalhes.
keyboard.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 direcionais do teclado serão giradas quando a orientação de exibição associada for alterada.Se o valor for
0
, o teclado ficará imune a alterações de orientação de exibição.
O valor padrão é 0
.
O reconhecimento de orientação é usado para dar suporte à rotação das teclas direcionais do teclado, como no Motorola Droid. Por exemplo, quando o dispositivo é girado no sentido horário 90 graus 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.
keyboard.builtIn
Definição: keyboard.builtIn
= 0
| 1
Especifica se o teclado é 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 de 0
. Outros teclados que não são integrados são atribuídos a IDs de dispositivo diferentes de zero.
Usar um id de 0
para o teclado interno é importante para manter a compatibilidade com o campo KeyCharacterMap.BUILT_IN_KEYBOARD
, que especifica o id do teclado interno e tem um valor de 0
. Este campo foi preterido na API, mas aplicativos mais antigos ainda podem usá-lo.
Um teclado de função especial (aquele cujo mapa de caracteres de teclas especifica um tipo de SPECIAL_FUNCTION
) nunca será registrado como o teclado interno, independentemente da configuração dessa 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 cientes da orientação. O layout de chave padrão e o mapa de caracteres de chave foram denominados qwerty
em vez de Generic
. O formato do mapa de caracteres-chave também era muito diferente e a estrutura não suportava teclados completos no estilo PC ou teclados externos.
Ao atualizar os dispositivos para o Honeycomb, certifique-se de criar ou atualizar a configuração necessária e os arquivos de mapa de chaves.
Usos HID, códigos-chave do Linux e códigos-chave do Android
O sistema se refere a chaves usando vários identificadores diferentes, dependendo da camada de abstração.
Para dispositivos HID, cada chave tem um uso HID associado. O driver hid-input
Linux e os drivers HID específicos do fornecedor e do dispositivo relacionados são responsáveis por analisar os relatórios HID e mapear os usos HID para os códigos-chave do Linux.
À medida que o Android lê eventos EV_KEY
do kernel do Linux, ele traduz cada código de chave do Linux em seu código de chave do Android correspondente de acordo com o arquivo de layout de chave do dispositivo.
Quando o evento de chave é despachado para um aplicativo, a instância android.view.KeyEvent
relata o código de chave do Linux como o valor de getScanCode()
e o código de chave do Android como o valor de getKeyCode()
. Para os propósitos 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 os aplicativos.
Tabelas de códigos
As tabelas a seguir mostram como os usos do 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 de chave do Linux em hexadecimal.
A coluna AKC especifica o código de chave do Android em hexadecimal.
A coluna Notas refere-se às notas postadas 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 foi alterado entre as versões. A versão mais antiga indicada é 1.6.
No Gingerbread (2.3) e versões anteriores, o mapa de teclas padrão era
qwerty.kl
. Este mapa de teclas destina-se apenas ao uso com o Android Emulator e não deve ser usado para oferecer 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. Consequentemente, 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 teclaHOME
. 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 estilo PC completos. A maioria das funcionalidades dos teclados HID padrão deve funcionar imediatamente.
O mapeamento de código de chave pode variar entre as versões do kernel Linux e do 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 teclas podem aplicar mapeamentos diferentes dos indicados aqui.
Teclado HID e Página de Teclado (0x07)
Uso HID | Nome de uso HID | LKC | Nome do código de chave do Linux | Versão | AKC | Nome do código da chave do Android | Notas |
---|---|---|---|---|---|---|---|
0x07 0x0001 | Rolagem de erro de teclado | ||||||
0x07 0x0002 | Falha no POST do teclado | ||||||
0x07 0x0003 | Erro de teclado indefinido | ||||||
0x07 0x0004 | Teclado A e A | 0x001e | KEY_A | 1,6 | 0x001d | KEYCODE_A | 1 |
0x07 0x0005 | Teclado b e B | 0x0030 | KEY_B | 1,6 | 0x001e | KEYCODE_B | 1 |
0x07 0x0006 | Teclado C e C | 0x002e | KEY_C | 1,6 | 0x001f | KEYCODE_C | 1 |
0x07 0x0007 | Teclado d e D | 0x0020 | KEY_D | 1,6 | 0x0020 | KEYCODE_D | 1 |
0x07 0x0008 | Teclado e e E | 0x0012 | KEY_E | 1,6 | 0x0021 | KEYCODE_E | 1 |
0x07 0x0009 | Teclado f e F | 0x0021 | KEY_F | 1,6 | 0x0022 | KEYCODE_F | 1 |
0x07 0x000a | Teclado g e G | 0x0022 | KEY_G | 1,6 | 0x0023 | KEYCODE_G | 1 |
0x07 0x000b | Teclado h e H | 0x0023 | KEY_H | 1,6 | 0x0024 | KEYCODE_H | 1 |
0x07 0x000c | Teclado eu e eu | 0x0017 | KEY_I | 1,6 | 0x0025 | KEYCODE_I | 1 |
0x07 0x000d | Teclado j e J | 0x0024 | KEY_J | 1,6 | 0x0026 | KEYCODE_J | 1 |
0x07 0x000e | Teclado k e K | 0x0025 | KEY_K | 1,6 | 0x0027 | KEYCODE_K | 1 |
0x07 0x000f | Teclado l e L | 0x0026 | KEY_L | 1,6 | 0x0028 | KEYCODE_L | 1 |
0x07 0x0010 | Teclado m e M | 0x0032 | KEY_M | 1,6 | 0x0029 | KEYCODE_M | 1 |
0x07 0x0011 | Teclado n e N | 0x0031 | KEY_N | 1,6 | 0x002a | KEYCODE_N | 1 |
0x07 0x0012 | Teclado o e O | 0x0018 | KEY_O | 1,6 | 0x002b | KEYCODE_O | 1 |
0x07 0x0013 | Teclado p e P | 0x0019 | KEY_P | 1,6 | 0x002c | KEYCODE_P | 1 |
0x07 0x0014 | Teclado q e Q | 0x0010 | KEY_Q | 1,6 | 0x002d | KEYCODE_Q | 1 |
0x07 0x0015 | Teclado r e R | 0x0013 | KEY_R | 1,6 | 0x002e | KEYCODE_R | 1 |
0x07 0x0016 | Teclado s e S | 0x001f | CHAVES | 1,6 | 0x002f | KEYCODE_S | 1 |
0x07 0x0017 | Teclado t e T | 0x0014 | KEY_T | 1,6 | 0x0030 | KEYCODE_T | 1 |
0x07 0x0018 | Teclado u e U | 0x0016 | KEY_U | 1,6 | 0x0031 | KEYCODE_U | 1 |
0x07 0x0019 | Teclado v e V | 0x002f | KEY_V | 1,6 | 0x0032 | KEYCODE_V | 1 |
0x07 0x001a | Teclado w e W | 0x0011 | KEY_W | 1,6 | 0x0033 | KEYCODE_W | 1 |
0x07 0x001b | Teclado x e X | 0x002d | KEY_X | 1,6 | 0x0034 | KEYCODE_X | 1 |
0x07 0x001c | Teclado y e Y | 0x0015 | KEY_Y | 1,6 | 0x0035 | KEYCODE_Y | 1 |
0x07 0x001d | Teclado z e Z | 0x002c | KEY_Z | 1,6 | 0x0036 | KEYCODE_Z | 1 |
0x07 0x001e | Teclado 1 e ! | 0x0002 | KEY_1 | 1,6 | 0x0008 | KEYCODE_1 | 1 |
0x07 0x001f | Teclado 2 e @ | 0x0003 | KEY_2 | 1,6 | 0x0009 | KEYCODE_2 | 1 |
0x07 0x0020 | Teclado 3 e # | 0x0004 | KEY_3 | 1,6 | 0x000a | KEYCODE_3 | 1 |
0x07 0x0021 | Teclado 4 e $ | 0x0005 | KEY_4 | 1,6 | 0x000b | KEYCODE_4 | 1 |
0x07 0x0022 | Teclado 5 e % | 0x0006 | KEY_5 | 1,6 | 0x000c | KEYCODE_5 | 1 |
0x07 0x0023 | Teclado 6 e ^ | 0x0007 | KEY_6 | 1,6 | 0x000d | KEYCODE_6 | 1 |
0x07 0x0024 | Teclado 7 e & | 0x0008 | KEY_7 | 1,6 | 0x000e | KEYCODE_7 | 1 |
0x07 0x0025 | Teclado 8 e * | 0x0009 | KEY_8 | 1,6 | 0x000f | KEYCODE_8 | 1 |
0x07 0x0026 | Teclado 9 e ( | 0x000a | KEY_9 | 1,6 | 0x0010 | KEYCODE_9 | 1 |
0x07 0x0027 | Teclado 0 e ) | 0x000b | KEY_0 | 1,6 | 0x0007 | KEYCODE_0 | 1 |
0x07 0x0028 | Teclado Retornar (ENTER) | 0x001c | KEY_ENTER | 1,6 | 0x0042 | KEYCODE_ENTER | 1 |
0x07 0x0029 | Teclado ESCAPE | 0x0001 | KEY_ESC | 3,0 | 0x006f | KEYCODE_ESCAPE | |
"" | "" | "" | "" | 2.3 | 0x0004 | KEYCODE_BACK | |
0x07 0x002a | Teclado DELETE (Backspace) | 0x000e | KEY_BACKSPACE | 1,6 | 0x0043 | KEYCODE_DEL | |
0x07 0x002b | Guia Teclado | 0x000f | KEY_TAB | 1,6 | 0x003d | KEYCODE_TAB | |
0x07 0x002c | Barra de espaço do teclado | 0x0039 | KEY_SPACE | 1,6 | 0x003e | KEYCODE_SPACE | |
0x07 0x002d | Teclado - e _ | 0x000c | KEY_MINUS | 1,6 | 0x0045 | KEYCODE_MINUS | 1 |
0x07 0x002e | Teclado = e + | 0x000d | KEY_EQUAL | 1,6 | 0x0046 | KEYCODE_EQUALS | 1 |
0x07 0x002f | Teclado [ e { | 0x001a | KEY_LEFTBRACE | 1,6 | 0x0047 | KEYCODE_LEFT_BRACKET | 1 |
0x07 0x0030 | Teclado ] e } | 0x001b | KEY_RIGHTBRACE | 1,6 | 0x0048 | KEYCODE_RIGHT_BRACKET | 1 |
0x07 0x0031 | Teclado \ e | | 0x002b | KEY_BACKSLASH | 1,6 | 0x0049 | KEYCODE_BACKSLASH | 1 |
0x07 0x0032 | Teclado não americano # e ~ | 0x002b | KEY_BACKSLASH | 1,6 | 0x0049 | KEYCODE_BACKSLASH | 1 |
0x07 0x0033 | Teclado ; e : | 0x0027 | KEY_SEMICOLON | 1,6 | 0x004a | KEYCODE_SEMICOLON | 1 |
0x07 0x0034 | Teclado ' e " | 0x0028 | KEY_APOSTROPHE | 1,6 | 0x004b | KEYCODE_APOSTROPHE | 1 |
0x07 0x0035 | Teclado ` e ~ | 0x0029 | KEY_GRAVE | 3,0 | 0x0044 | KEYCODE_GRAVE | 1 |
0x07 0x0036 | Teclado e < | 0x0033 | KEY_COMMA | 1,6 | 0x0037 | KEYCODE_COMMA | 1 |
0x07 0x0037 | Teclado . e > | 0x0034 | KEY_DOT | 1,6 | 0x0038 | KEYCODE_PERIOD | 1 |
0x07 0x0038 | Teclado / e ? | 0x0035 | KEY_SLASH | 1,6 | 0x004c | KEYCODE_SLASH | 1 |
0x07 0x0039 | Teclado Caps Lock | 0x003a | KEY_CAPSLOCK | 3,0 | 0x0073 | KEYCODE_CAPS_LOCK | |
0x07 0x003a | Teclado F1 | 0x003b | KEY_F1 | 3,0 | 0x0083 | KEYCODE_F1 | |
"" | "" | "" | "" | 1,6 | 0x0052 | KEYCODE_MENU | |
0x07 0x003b | Teclado F2 | 0x003c | KEY_F2 | 3,0 | 0x0084 | KEYCODE_F2 | |
"" | "" | "" | "" | 1,6 | 0x0002 | KEYCODE_SOFT_RIGHT | |
0x07 0x003c | Teclado F3 | 0x003d | KEY_F3 | 3,0 | 0x0085 | KEYCODE_F3 | |
"" | "" | "" | "" | 1,6 | 0x0005 | KEYCODE_CALL | |
0x07 0x003d | Teclado F4 | 0x003e | KEY_F4 | 3,0 | 0x0086 | KEYCODE_F4 | |
"" | "" | "" | "" | 1,6 | 0x0006 | KEYCODE_ENDCALL | |
0x07 0x003e | Teclado F5 | 0x003f | KEY_F5 | 3,0 | 0x0087 | KEYCODE_F5 | |
0x07 0x003f | Teclado F6 | 0x0040 | KEY_F6 | 3,0 | 0x0088 | KEYCODE_F6 | |
0x07 0x0040 | Teclado F7 | 0x0041 | KEY_F7 | 3,0 | 0x0089 | KEYCODE_F7 | |
0x07 0x0041 | Teclado F8 | 0x0042 | KEY_F8 | 3,0 | 0x008a | KEYCODE_F8 | |
0x07 0x0042 | Teclado F9 | 0x0043 | KEY_F9 | 3,0 | 0x008b | KEYCODE_F9 | |
0x07 0x0043 | Teclado F10 | 0x0044 | KEY_F10 | 3,0 | 0x008c | KEYCODE_F10 | |
"" | "" | "" | "" | 2.3 | 0x0052 | KEYCODE_MENU | |
0x07 0x0044 | Teclado F11 | 0x0057 | KEY_F11 | 3,0 | 0x008d | KEYCODE_F11 | |
0x07 0x0045 | Teclado F12 | 0x0058 | KEY_F12 | 3,0 | 0x008e | KEYCODE_F12 | |
0x07 0x0046 | Tela de impressão do teclado | 0x0063 | KEY_SYSRQ | 3,0 | 0x0078 | KEYCODE_SYSRQ | |
0x07 0x0047 | Bloqueio de rolagem do teclado | 0x0046 | KEY_SCROLLLOCK | 3,0 | 0x0074 | KEYCODE_SCROLL_LOCK | |
0x07 0x0048 | Pausa do teclado | 0x0077 | KEY_PAUSE | 3,0 | 0x0079 | KEYCODE_BREAK | |
0x07 0x0049 | Inserção do teclado | 0x006e | KEY_INSERT | 3,0 | 0x007c | KEYCODE_INSERT | |
0x07 0x004a | Teclado inicial | 0x0066 | KEY_HOME | 3,0 | 0x007a | KEYCODE_MOVE_HOME | |
"" | "" | "" | "" | 1,6 | 0x0003 | KEYCODE_HOME | |
0x07 0x004b | Teclado Page Up | 0x0068 | KEY_PAGEUP | 3,0 | 0x005c | KEYCODE_PAGE_UP | |
0x07 0x004c | Teclado Excluir Encaminhar | 0x006f | KEY_DELETE | 3,0 | 0x0070 | KEYCODE_FORWARD_DEL | |
0x07 0x004d | Fim do teclado | 0x006b | KEY_END | 3,0 | 0x007b | KEYCODE_MOVE_END | |
"" | "" | "" | "" | 1,6 | 0x0006 | KEYCODE_ENDCALL | |
0x07 0x004e | Teclado Page Down | 0x006d | KEY_PAGEDOWN | 3,0 | 0x005d | KEYCODE_PAGE_DOWN | |
0x07 0x004f | Seta para a direita do teclado | 0x006a | KEY_RIGHT | 1,6 | 0x0016 | KEYCODE_DPAD_RIGHT | |
0x07 0x0050 | Seta para a esquerda do teclado | 0x0069 | KEY_LEFT | 1,6 | 0x0015 | KEYCODE_DPAD_LEFT | |
0x07 0x0051 | Seta para baixo do teclado | 0x006c | KEY_DOWN | 1,6 | 0x0014 | KEYCODE_DPAD_DOWN | |
0x07 0x0052 | Seta para cima do teclado | 0x0067 | KEY_UP | 1,6 | 0x0013 | KEYCODE_DPAD_UP | |
0x07 0x0053 | Teclado Num Lock e Limpar | 0x0045 | KEY_NUMLOCK | 3,0 | 0x008f | KEYCODE_NUM_LOCK | |
0x07 0x0054 | Teclado / | 0x0062 | KEY_KPSLASH | 3,0 | 0x009a | KEYCODE_NUMPAD_DIVIDE | |
0x07 0x0055 | Teclado * | 0x0037 | KEY_KPASTERISK | 3,0 | 0x009b | KEYCODE_NUMPAD_MULTIPLY | |
0x07 0x0056 | Teclado - | 0x004a | KEY_KPMINUS | 3,0 | 0x009c | KEYCODE_NUMPAD_SUBTRACT | |
0x07 0x0057 | Teclado + | 0x004e | KEY_KPPLUS | 3,0 | 0x009d | KEYCODE_NUMPAD_ADD | |
0x07 0x0058 | Teclado ENTER | 0x0060 | KEY_KPENTER | 3,0 | 0x00a0 | KEYCODE_NUMPAD_ENTER | |
0x07 0x0059 | Teclado 1 e Fim | 0x004f | KEY_KP1 | 3,0 | 0x0091 | KEYCODE_NUMPAD_1 | |
0x07 0x005a | Teclado 2 e seta para baixo | 0x0050 | KEY_KP2 | 3,0 | 0x0092 | KEYCODE_NUMPAD_2 | |
0x07 0x005b | Teclado 3 e PageDn | 0x0051 | KEY_KP3 | 3,0 | 0x0093 | KEYCODE_NUMPAD_3 | |
0x07 0x005c | Teclado 4 e seta para a esquerda | 0x004b | KEY_KP4 | 3,0 | 0x0094 | KEYCODE_NUMPAD_4 | |
0x07 0x005d | Teclado 5 | 0x004c | KEY_KP5 | 3,0 | 0x0095 | KEYCODE_NUMPAD_5 | |
0x07 0x005e | Teclado 6 e seta para a direita | 0x004d | KEY_KP6 | 3,0 | 0x0096 | KEYCODE_NUMPAD_6 | |
0x07 0x005f | Teclado 7 e Home | 0x0047 | KEY_KP7 | 3,0 | 0x0097 | KEYCODE_NUMPAD_7 | |
0x07 0x0060 | Teclado 8 e seta para cima | 0x0048 | KEY_KP8 | 3,0 | 0x0098 | KEYCODE_NUMPAD_8 | |
0x07 0x0061 | Teclado 9 e Page Up | 0x0049 | KEY_KP9 | 3,0 | 0x0099 | KEYCODE_NUMPAD_9 | |
0x07 0x0062 | Teclado 0 e Inserir | 0x0052 | KEY_KP0 | 3,0 | 0x0090 | KEYCODE_NUMPAD_0 | |
0x07 0x0063 | Teclado. e Excluir | 0x0053 | KEY_KPDOT | 3,0 | 0x009e | KEYCODE_NUMPAD_DOT | |
0x07 0x0064 | Teclado Fora dos EUA \ e | | 0x0056 | KEY_102ND | 4,0 | 0x0049 | KEYCODE_BACKSLASH | 1 |
0x07 0x0065 | Aplicativo de teclado | 0x007f | KEY_COMPOSE | 3,0 | 0x0052 | KEYCODE_MENU | |
"" | "" | "" | "" | 1,6 | 0x0054 | KEYCODE_SEARCH | |
0x07 0x0066 | Potência do teclado | 0x0074 | KEY_POWER | 1,6 | 0x001a | KEYCODE_POWER | |
0x07 0x0067 | Teclado = | 0x0075 | KEY_KPEQUAL | 3,0 | 0x00a1 | KEYCODE_NUMPAD_EQUALS | |
0x07 0x0068 | Teclado F13 | 0x00b7 | KEY_F13 | ||||
0x07 0x0069 | Teclado F14 | 0x00b8 | KEY_F14 | ||||
0x07 0x006a | Teclado F15 | 0x00b9 | KEY_F15 | ||||
0x07 0x006b | Teclado F16 | 0x00ba | KEY_F16 | ||||
0x07 0x006c | Teclado F17 | 0x00bb | KEY_F17 | ||||
0x07 0x006d | Teclado F18 | 0x00bc | KEY_F18 | ||||
0x07 0x006e | Teclado F19 | 0x00bd | KEY_F19 | ||||
0x07 0x006f | Teclado F20 | 0x00be | KEY_F20 | ||||
0x07 0x0070 | Teclado F21 | 0x00bf | KEY_F21 | ||||
0x07 0x0071 | Teclado F22 | 0x00c0 | KEY_F22 | ||||
0x07 0x0072 | Teclado F23 | 0x00c1 | KEY_F23 | ||||
0x07 0x0073 | Teclado F24 | 0x00c2 | KEY_F24 | ||||
0x07 0x0074 | Teclado Executar | 0x0086 | KEY_OPEN | ||||
0x07 0x0075 | Ajuda do teclado | 0x008a | KEY_HELP | ||||
0x07 0x0076 | Menu do teclado | 0x0082 | KEY_PROPS | ||||
0x07 0x0077 | Seleção do teclado | 0x0084 | KEY_FRONT | ||||
0x07 0x0078 | Parada do teclado | 0x0080 | KEY_STOP | 3,0 | 0x0056 | KEYCODE_MEDIA_STOP | |
0x07 0x0079 | Teclado novamente | 0x0081 | KEY_AGAIN | ||||
0x07 0x007a | Teclado Desfazer | 0x0083 | KEY_UNDO | ||||
0x07 0x007b | Corte do teclado | 0x0089 | KEY_CUT | ||||
0x07 0x007c | Cópia do teclado | 0x0085 | KEY_COPY | ||||
0x07 0x007d | Colar teclado | 0x0087 | KEY_PASTE | ||||
0x07 0x007e | Teclado Localizar | 0x0088 | KEY_FIND | ||||
0x07 0x007f | Teclado Mudo | 0x0071 | KEY_MUTE | 3,0 | 0x00a4 | KEYCODE_VOLUME_MUTE | |
0x07 0x0080 | Aumentar volume do teclado | 0x0073 | KEY_VOLUMEUP | 1,6 | 0x0018 | KEYCODE_VOLUME_UP | |
0x07 0x0081 | Diminuir volume do teclado | 0x0072 | KEY_VOLUMEDOWN | 1,6 | 0x0019 | KEYCODE_VOLUME_DOWN | |
0x07 0x0082 | Bloqueio do teclado Caps Lock | ||||||
0x07 0x0083 | Bloqueio de Teclado Num Lock | ||||||
0x07 0x0084 | Bloqueio de rolagem de bloqueio de teclado | ||||||
0x07 0x0085 | Vírgula do teclado | 0x0079 | KEY_KPCOMMA | 3,0 | 0x009f | KEYCODE_NUMPAD_COMMA | |
0x07 0x0086 | Sinal de igual do teclado | ||||||
0x07 0x0087 | Teclado Internacional1 | 0x0059 | KEY_RO | ||||
0x07 0x0088 | Teclado Internacional2 | 0x005d | KEY_KATAKANAHIRAGANA | ||||
0x07 0x0089 | Teclado Internacional3 | 0x007c | KEY_YEN | ||||
0x07 0x008a | Teclado Internacional4 | 0x005c | KEY_HENKAN | ||||
0x07 0x008b | Teclado Internacional 5 | 0x005e | KEY_MUHENKAN | ||||
0x07 0x008c | Teclado Internacional 6 | 0x005f | KEY_KPJPCOMMA | ||||
0x07 0x008d | Teclado Internacional 7 | ||||||
0x07 0x008e | Teclado Internacional8 | ||||||
0x07 0x008f | Teclado Internacional 9 | ||||||
0x07 0x0090 | Teclado LANG1 | 0x007a | KEY_HANGEUL | ||||
0x07 0x0091 | Teclado LANG2 | 0x007b | KEY_HANJA | ||||
0x07 0x0092 | Teclado LANG3 | 0x005a | KEY_KATAKANA | ||||
0x07 0x0093 | Teclado LANG4 | 0x005b | KEY_HIRAGANA | ||||
0x07 0x0094 | Teclado LANG5 | 0x0055 | KEY_ZENKAKUHANKAKU | ||||
0x07 0x0095 | Teclado LANG6 | ||||||
0x07 0x0096 | Teclado LANG7 | ||||||
0x07 0x0097 | Teclado LANG8 | ||||||
0x07 0x0098 | Teclado LANG9 | ||||||
0x07 0x0099 | Apagamento alternativo do teclado | ||||||
0x07 0x009a | Teclado SysReq/Atenção | ||||||
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 | Teclado Operador | ||||||
0x07 0x00a2 | Teclado Limpar/Novamente | ||||||
0x07 0x00a3 | Teclado CrSel/Props | ||||||
0x07 0x00a4 | Teclado ExSel | ||||||
0x07 0x00b0 | Teclado 00 | ||||||
0x07 0x00b1 | Teclado 000 | ||||||
0x07 0x00b2 | Separador de milhares | ||||||
0x07 0x00b3 | Separador decimal | ||||||
0x07 0x00b4 | Unidade monetária | ||||||
0x07 0x00b5 | Subunidade de moeda | ||||||
0x07 0x00b6 | Teclado ( | 0x00b3 | KEY_KPLEFTPAREN | 3,0 | 0x00a2 | KEYCODE_NUMPAD_LEFT_PAREN | |
0x07 0x00b7 | Teclado) | 0x00b4 | KEY_KPRIGHTPAREN | 3,0 | 0x00a3 | KEYCODE_NUMPAD_RIGHT_PAREN | |
0x07 0x00b8 | Teclado { | ||||||
0x07 0x00b9 | Teclado } | ||||||
0x07 0x00ba | Guia do teclado | ||||||
0x07 0x00bb | Retrocesso 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 & | ||||||
0x07 0x00c8 | Teclado && | ||||||
0x07 0x00c9 | Teclado | | ||||||
0x07 0x00ca | Teclado || | ||||||
0x07 0x00cb | Teclado: | ||||||
0x07 0x00cc | Teclado # | ||||||
0x07 0x00cd | Espaço do teclado | ||||||
0x07 0x00ce | Teclado @ | ||||||
0x07 0x00cf | Teclado! | ||||||
0x07 0x00d0 | Armazenamento de memória do teclado | ||||||
0x07 0x00d1 | Recuperação de memória do teclado | ||||||
0x07 0x00d2 | Limpar memória do teclado | ||||||
0x07 0x00d3 | Adicionar memória do teclado | ||||||
0x07 0x00d4 | Subtração de memória do teclado | ||||||
0x07 0x00d5 | Multiplicação de 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 | Teclado hexadecimal | ||||||
0x07 0x00e0 | Controle esquerdo do teclado | 0x001d | KEY_LEFTCTRL | 3,0 | 0x0071 | KEYCODE_CTRL_LEFT | |
0x07 0x00e1 | Deslocamento à esquerda do teclado | 0x002a | KEY_LEFTSHIFT | 1,6 | 0x003b | KEYCODE_SHIFT_LEFT | |
0x07 0x00e2 | Teclado esquerdo Alt | 0x0038 | KEY_LEFTALT | 1,6 | 0x0039 | KEYCODE_ALT_LEFT | |
0x07 0x00e3 | GUI Esquerda do Teclado | 0x007d | KEY_LEFTMETA | 3,0 | 0x0075 | KEYCODE_META_LEFT | |
0x07 0x00e4 | Controle direito do teclado | 0x0061 | KEY_RIGHTCTRL | 3,0 | 0x0072 | KEYCODE_CTRL_RIGHT | |
0x07 0x00e5 | Deslocamento à direita do teclado | 0x0036 | KEY_RIGHTSHIFT | 1,6 | 0x003c | KEYCODE_SHIFT_RIGHT | |
0x07 0x00e6 | Teclado Alt direito | 0x0064 | KEY_RIGHTALT | 1,6 | 0x003a | KEYCODE_ALT_RIGHT | |
0x07 0x00e7 | GUI do teclado direito | 0x007e | KEY_RIGHTMETA | 3,0 | 0x0076 | KEYCODE_META_RIGHT | |
0x07 0x00e8 | 0x00a4 | KEY_PLAYPAUSE | 3,0 | 0x0055 | KEYCODE_MEDIA_PLAY_PAUSE | ||
0x07 0x00e9 | 0x00a6 | KEY_STOPCD | 3,0 | 0x0056 | KEYCODE_MEDIA_STOP | ||
0x07 0x00ea | 0x00a5 | KEY_PREVIOUSSONG | 3,0 | 0x0058 | KEYCODE_MEDIA_PREVIOUS | ||
0x07 0x00eb | 0x00a3 | KEY_NEXTSONG | 3,0 | 0x0057 | KEYCODE_MEDIA_NEXT | ||
0x07 0x00ec | 0x00a1 | KEY_EJECTCD | 3,0 | 0x0081 | KEYCODE_MEDIA_EJECT | ||
0x07 0x00ed | 0x0073 | KEY_VOLUMEUP | 1,6 | 0x0018 | KEYCODE_VOLUME_UP | ||
0x07 0x00ee | 0x0072 | KEY_VOLUMEDOWN | 1,6 | 0x0019 | KEYCODE_VOLUME_DOWN | ||
0x07 0x00ef | 0x0071 | KEY_MUTE | 3,0 | 0x00a4 | KEYCODE_VOLUME_MUTE | ||
0x07 0x00f0 | 0x0096 | KEY_WWW | 1,6 | 0x0040 | KEYCODE_EXPLORER | ||
0x07 0x00f1 | 0x009e | KEY_BACK | 1,6 | 0x0004 | KEYCODE_BACK | ||
0x07 0x00f2 | 0x009f | KEY_FORWARD | 3,0 | 0x007d | KEYCODE_FORWARD | ||
0x07 0x00f3 | 0x0080 | KEY_STOP | 3,0 | 0x0056 | KEYCODE_MEDIA_STOP | ||
0x07 0x00f4 | 0x0088 | KEY_FIND | |||||
0x07 0x00f5 | 0x00b1 | KEY_SCROLLUP | 3,0 | 0x005c | KEYCODE_PAGE_UP | ||
0x07 0x00f6 | 0x00b2 | KEY_SCROLLDOWN | 3,0 | 0x005d | KEYCODE_PAGE_DOWN | ||
0x07 0x00f7 | 0x00b0 | KEY_EDIT | |||||
0x07 0x00f8 | 0x008e | KEY_SLEEP | |||||
0x07 0x00f9 | 0x0098 | KEY_COFFEE | 4,0 | 0x001a | KEYCODE_POWER | ||
0x07 0x00fa | 0x00anúncio | KEY_REFRESH | |||||
0x07 0x00fb | 0x008c | KEY_CALC | 4.0.3 | 0x00d2 | KEYCODE_CALCULATOR |
Página de área de trabalho genérica HID (0x01)
Uso HID | Nome de uso HID | LKC | Nome do código de chave do Linux | Versão | AKC | Nome do código da 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 | |
0x01 0x0083 | Despertar do Sistema | 0x008f | KEY_WAKEUP | 4,0 | 0x001a | KEYCODE_POWER | |
0x01 0x0084 | Menu de contexto do sistema | ||||||
0x01 0x0085 | Menu principal do sistema | ||||||
0x01 0x0086 | Menu do aplicativo do sistema | ||||||
0x01 0x0087 | Ajuda do menu do sistema | ||||||
0x01 0x0088 | Sair do Menu do Sistema | ||||||
0x01 0x0089 | Seleção do menu do sistema | ||||||
0x01 0x008a | Menu do Sistema Direito | ||||||
0x01 0x008b | Menu do sistema à esquerda | ||||||
0x01 0x008c | Menu do sistema para cima | ||||||
0x01 0x008d | Menu do sistema para baixo | ||||||
0x01 0x008e | Reinicialização a frio do sistema | ||||||
0x01 0x008f | Reinicialização a quente do sistema | ||||||
0x01 0x00a0 | Dock do sistema | ||||||
0x01 0x00a1 | Desencaixe do sistema | ||||||
0x01 0x00a2 | Configuração do sistema | ||||||
0x01 0x00a3 | Quebra do sistema | ||||||
0x01 0x00a4 | Interrupção do depurador do sistema | ||||||
0x01 0x00a5 | Interrupção do aplicativo | ||||||
0x01 0x00a6 | Interrupção do depurador de aplicativos | ||||||
0x01 0x00a7 | Silenciamento do alto-falante do sistema | ||||||
0x01 0x00a8 | Hibernação do sistema | ||||||
0x01 0x00b0 | Inversão de exibição do sistema | ||||||
0x01 0x00b1 | Exibição do sistema interno | ||||||
0x01 0x00b2 | Exibição do Sistema Externo | ||||||
0x01 0x00b3 | Exibição do Sistema Ambos | ||||||
0x01 0x00b4 | Exibição do sistema dupla | ||||||
0x01 0x00b5 | Exibição do Sistema Alternar Int/Ext | ||||||
0x01 0x00b6 | Troca de Tela do Sistema Prim./Seg. | ||||||
0x01 0x00b7 | Escala automática do LCD do visor do sistema |
Página do consumidor HID (0x0c)
Uso HID | Nome de uso HID | LKC | Nome do código de chave do Linux | Versão | AKC | Nome do código da chave do Android | Notas |
---|---|---|---|---|---|---|---|
0x0c 0x0030 | Poder | ||||||
0x0c 0x0031 | Redefinir | ||||||
0x0c 0x0032 | Dorme | ||||||
0x0c 0x0033 | Dormir Depois | ||||||
0x0c 0x0034 | Modo dormir | 0x008e | KEY_SLEEP | 4,0 | 0x001a | KEYCODE_POWER | |
0x0c 0x0040 | Cardápio | 0x008b | KEY_MENU | 1,6 | 0x0052 | KEYCODE_MENU | |
0x0c 0x0041 | Escolha do Menu | ||||||
0x0c 0x0042 | Menu Acima | ||||||
0x0c 0x0043 | Menu Abaixo | ||||||
0x0c 0x0044 | Menu Esquerdo | ||||||
0x0c 0x0045 | Menu Direito | 0x0181 | KEY_RIGHT | ||||
0x0c 0x0046 | Saída de menu | ||||||
0x0c 0x0047 | Aumento do valor do menu | ||||||
0x0c 0x0048 | Diminuição do valor do menu | ||||||
0x0c 0x0067 | Alternar imagem em imagem | 0x00ab | KEYCODE_WINDOW | Adicionado em aosp/1365553 | |||
0x0c 0x0069 | 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 | |
0x0c 0x0081 | Atribuir seleção | ||||||
0x0c 0x0082 | Etapa do modo | ||||||
0x0c 0x0083 | Recuperar Último | 0x0195 | KEY_LAST | 0xe5 | KEYCODE_LAST_CHANNEL | Adicionado em aosp/1365551 | |
0x0c 0x0084 | Entrar no canal | ||||||
0x0c 0x0085 | Encomendar filme | ||||||
0x0c 0x0088 | Computador de seleção de mídia | 0x0178 | KEY_PC | ||||
0x0c 0x0089 | TV de seleção de mídia | 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 | Telefone de vídeo de seleção de mídia | 0x01a0 | KEY_VIDEOPHONE | ||||
0x0c 0x008f | Jogos de seleção de mídia | 0x01a1 | KEY_GAMES | ||||
0x0c 0x0090 | Mensagens de seleção de mídia | 0x018c | KEY_MEMO | ||||
0x0c 0x0091 | CD de seleção de mídia | 0x017f | KEY_CD | ||||
0x0c 0x0092 | Seleção de mídia videocassete | 0x017b | KEY_VCR | ||||
0x0c 0x0093 | Sintonizador de seleção de mídia | 0x0182 | KEY_TUNER | ||||
0x0c 0x0094 | Desistir | 0x00ae | KEY_EXIT | ||||
0x0c 0x0095 | Ajuda | 0x008a | KEY_HELP | ||||
0x0c 0x0096 | Fita de seleção de mídia | 0x0180 | KEY_TAPE | ||||
0x0c 0x0097 | 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 | 0x00anúncio | KEYCODE_DVR | |
0x0c 0x0061 | Legenda | 0x0172 | KEY_SUBTITLE | 0x00af | KEYCODE_CAPTIONS | Adicionado em aosp/1365552 | |
0x0c 0x009c | Incremento de canal | 0x0192 | KEY_CHANNELUP | 3,0 | 0x00a6 | KEYCODE_CHANNEL_UP | |
0x0c 0x009d | Diminuição do 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 | Toque | 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 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 | Pare | 0x00a6 | KEY_STOPCD | 3,0 | 0x0056 | KEYCODE_MEDIA_STOP | |
0x0c 0x00b8 | Ejetar | 0x00a1 | KEY_EJECTCD | 3,0 | 0x0081 | KEYCODE_MEDIA_EJECT | |
0x0c 0x00b9 | Reprodução aleatória | ||||||
0x0c 0x00ba | Selecionar disco | ||||||
0x0c 0x00bb | Digite o disco | ||||||
0x0c 0x00bc | Repetir | 0x01b7 | KEY_MEDIA_REPEAT | ||||
0x0c 0x00be | Rastrear Normal | ||||||
0x0c 0x00c0 | Quadro para a frente | ||||||
0x0c 0x00c1 | Parte de trás do quadro | ||||||
0x0c 0x00c2 | Marca | ||||||
0x0c 0x00c3 | Limpar Marca | ||||||
0x0c 0x00c4 | Repetir da marca | ||||||
0x0c 0x00c5 | Retornar para marcar | ||||||
0x0c 0x00c6 | Marca de pesquisa para a 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 | Reforço 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 | |
0x0c 0x0173 | Incremento de áudio alternativo | 0x00de | KEYCODE_MEDIA_AUDIO_TRACK | Adicionado em aosp/1365554 | |||
0x0c 0x0181 | AL Launch Button Config. Ferramenta | ||||||
0x0c 0x0182 | Configuração do botão programável AL. | 0x009c | KEY_BOOKMARKS | 3,0 | 0x00ae | KEYCODE_BOOKMARK | |
0x0c 0x0183 | Configuração de controle de consumidor AL. | 0x00ab | KEY_CONFIG | 4.0.3 | 0x00d1 | KEYCODE_MUSIC | |
0x0c 0x0184 | Processador de Texto AL | 0x01a5 | KEY_WORDPROCESSOR | ||||
0x0c 0x0185 | Editor de texto AL | 0x01a6 | KEY_EDITOR | ||||
0x0c 0x0186 | Planilha AL | 0x01a7 | KEY_SPREADSHEET | ||||
0x0c 0x0187 | Editor gráfico AL | 0x01a8 | KEY_GRAPHICSEDITOR | ||||
0x0c 0x0188 | Aplicativo de apresentação AL | 0x01a9 | KEY_PRESENTATION | ||||
0x0c 0x0189 | 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 | 0x01anúncio | KEY_ADDRESSBOOK | 4.0.3 | 0x00cf | KEYCODE_CONTACTS | |
0x0c 0x018e | AL Calendário / Cronograma | 0x018d | KEY_CALENDAR | 4.0.3 | 0x00d0 | KEYCODE_CALENDAR | |
0x0c 0x018f | Tarefa AL/Gerente de Projeto | ||||||
0x0c 0x0190 | Log / Diário / Cartão de Ponto AL | ||||||
0x0c 0x0191 | Talão de cheques AL / Finanças | 0x00db | KEY_FINANCE | ||||
0x0c 0x0192 | Calculadora AL | 0x008c | KEY_CALC | 4.0.3 | 0x00d2 | KEYCODE_CALCULATOR | |
0x0c 0x0193 | AL A/V Captura/Reprodução | ||||||
0x0c 0x0194 | Navegador de máquina local AL | 0x0090 | KEY_FILE | ||||
0x0c 0x0195 | Navegador AL LAN/WAN | ||||||
0x0c 0x0196 | Navegador de Internet AL | 0x0096 | KEY_WWW | 1,6 | 0x0040 | KEYCODE_EXPLORER | |
0x0c 0x0197 | AL Remote Networking/ISP Connect | ||||||
0x0c 0x0198 | Conferência da Rede AL | ||||||
0x0c 0x0199 | Bate-papo em rede AL | 0x00d8 | KEY_CHAT | ||||
0x0c 0x019a | AL Telefonia / Discador | ||||||
0x0c 0x019b | Logon AL | ||||||
0x0c 0x019c | Logoff AL | 0x01b1 | KEY_LOGOFF | ||||
0x0c 0x019d | Logon / Logoff AL | ||||||
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 de linha de comando AL / Executar | ||||||
0x0c 0x01a1 | Processo AL / Gerenciador de Tarefas | ||||||
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 Preemptiva AL. | ||||||
0x0c 0x01a6 | Central de Ajuda Integrada AL | 0x008a | KEY_HELP | ||||
0x0c 0x01a7 | Documentos AL | 0x00eb | KEY_DOCUMENTS | ||||
0x0c 0x01a8 | AL Thesaurus | ||||||
0x0c 0x01a9 | Dicionário AL | ||||||
0x0c 0x01aa | Área de trabalho AL | ||||||
0x0c 0x01ab | Corretor Ortográfico AL | 0x01b0 | KEY_SPELLCHECK | ||||
0x0c 0x01ac | Verificação gramatical AL | ||||||
0x0c 0x01anúncio | Estado 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 | Navegador de arquivos AL | ||||||
0x0c 0x01b5 | Status de alimentação 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 | AL Movie Browser | ||||||
0x0c 0x01b9 | AL Digital Rights Manager | ||||||
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.
Sources
- 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