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 | Carteira Digital AL | ||||||
0x0c 0x01bc | AL Mensagens Instantâneas | 0x01ae | KEY_MESSENGER | ||||
0x0c 0x01bd | AL OEM Recursos / Navegador de Dicas | 0x0166 | KEY_INFO | ||||
0x0c 0x01be | Ajuda OEM AL | ||||||
0x0c 0x01bf | Comunidade Online AL | ||||||
0x0c0x01c0 | Navegador de conteúdo AL Entertainment | ||||||
0x0c 0x01c1 | AL Navegador de compras on-line | ||||||
0x0c 0x01c2 | Informações / Ajuda do AL SmartCard | ||||||
0x0c 0x01c3 | AL Mercado / Navegador Financeiro | ||||||
0x0c 0x01c4 | Navegador de notícias AL Customized Corp. | ||||||
0x0c 0x01c5 | Navegador de atividades on-line AL | ||||||
0x0c 0x01c6 | Pesquisa AL / Navegador de pesquisa | ||||||
0x0c 0x01c7 | Leitor de áudio AL | ||||||
0x0c0x0201 | AC Novo | 0x00b5 | KEY_NEW | ||||
0x0c0x0202 | CA aberta | 0x0086 | KEY_OPEN | ||||
0x0c0x0203 | AC Fechado | 0x00ce | KEY_CLOSE | ||||
0x0c 0x0204 | Saída CA. | 0x00AE | Key_exit | ||||
0x0c 0x0205 | CA Maximize | ||||||
0x0c 0x0206 | CA Minimize | ||||||
0x0c 0x0207 | AC salva | 0x0000 | Key_save | ||||
0x0c 0x0208 | Impressão CA. | 0x00D2 | Key_print | ||||
0x0c 0x0209 | Propriedades CA. | 0x0082 | Key_props | ||||
0x0c 0x021a | AC desfazer | 0x0083 | Key_undo | ||||
0x0c 0x021b | Cópia CA. | 0x0085 | Key_copy | ||||
0x0c 0x021c | CUT AC | 0x0089 | Key_cut | ||||
0x0c 0x021d | Pasta ac | 0x0087 | Key_paste | ||||
0x0c 0x021e | CA Selecione tudo | ||||||
0x0c 0x021f | AC ACH | 0x0088 | Key_find | ||||
0x0c 0x0220 | CA Find e substitua | ||||||
0x0c 0x0221 | Pesquisa CA. | 0x00D9 | Key_search | 1.6 | 0x0054 | Keycode_search | |
0x0c 0x0222 | AC vá para | 0x0162 | Key_goto | ||||
0x0c0x0223 | Casa CA. | 0x00AC | Key_homePage | 3,0 | 0x0003 | Keycode_home | |
0x0c0x0224 | AC de volta | 0x009e | Key_back | 1.6 | 0x0004 | Keycode_back | |
0x0c 0x0225 | AC avançado | 0x009f | Key_forward | 3,0 | 0x007D | Keycode_forward | |
0x0c 0x0226 | Stop CA. | 0x0080 | Key_stop | 3,0 | 0x0056 | Keycode_media_stop | |
0x0c 0x0227 | ACRESH AC | 0x00AD | Key_refresh | ||||
0x0c 0x0228 | Link anterior | ||||||
0x0c 0x0229 | AC Próximo link | ||||||
0x0c 0x022a | Marcadores CA. | 0x009c | Key_bookmarks | 3,0 | 0x00AE | Keycode_bookmark | |
0x0c 0x022b | História do AC | ||||||
0x0c 0x022c | Assinaturas CA. | ||||||
0x0c 0x022d | AC zoom in | 0x01a2 | Key_zoomin | ||||
0x0c 0x022e | AC zoom fora | 0x01a3 | Key_zoomout | ||||
0x0c 0x022f | ZOOM AC | 0x01a4 | Key_zoomreset | 2 | |||
0x0c 0x0230 | Visualização de tela cheia CA | ||||||
0x0c 0x0231 | Vista normal CA. | ||||||
0x0c 0x0232 | CA. Visualize alternar | ||||||
0x0c 0x0233 | AC role para cima | 0x00B1 | Key_scrollup | 3,0 | 0x005c | Keycode_page_up | |
0x0c 0x0234 | AC role para baixo | 0x00B2 | Key_scrolldown | 3,0 | 0x005d | Keycode_page_down | |
0x0c 0x0236 | Pan AC para a esquerda | ||||||
0x0c 0x0237 | Pan CA à direita | ||||||
0x0c 0x0239 | CA New Window | ||||||
0x0c 0x023a | AC Tile horizontalmente | ||||||
0x0c 0x023b | AC Tile verticalmente | ||||||
0x0c 0x023c | Formato CA. | ||||||
0x0c 0x023d | Editar CA. | ||||||
0x0c 0x023e | AC em negrito | ||||||
0x0c 0x023f | CA Itálico | ||||||
0x0c 0x0240 | Sublinhado CA. | ||||||
0x0c 0x0241 | AC Strikethrough | ||||||
0x0c 0x0242 | Subscrito AC | ||||||
0x0c 0x0243 | Superscript de CA. | ||||||
0x0c 0x0244 | AC todas as tampas | ||||||
0x0c 0x0245 | CA gira | ||||||
0x0c 0x0246 | Redimensionar CA. | ||||||
0x0c 0x0247 | CA Flip Horizontal | ||||||
0x0c 0x0248 | Flip de CA vertical | ||||||
0x0c 0x0249 | Mirror AC Horizontal | ||||||
0x0c 0x024a | Espelho CA vertical | ||||||
0x0c 0x024b | Fonte CA Selecionar | ||||||
0x0c 0x024c | Cor da fonte CA. | ||||||
0x0c 0x024d | Tamanho da fonte CA. | ||||||
0x0c 0x024e | CA justificar a esquerda | ||||||
0x0c 0x024f | AC justify Center H | ||||||
0x0c 0x0250 | CA justificar a direita | ||||||
0x0c 0x0251 | CA justificar o bloco H | ||||||
0x0c 0x0252 | AC justify top | ||||||
0x0c 0x0253 | AC justify Center V | ||||||
0x0c 0x0254 | CA justificar o fundo | ||||||
0x0c 0x0255 | AC justify Bloco V | ||||||
0x0c 0x0256 | Diminuição do recuo CA. | ||||||
0x0c 0x0257 | Aumento do recuo CA. | ||||||
0x0c 0x0258 | Lista numerada CA. | ||||||
0x0c 0x0259 | Numeração de reinicialização do CA. | ||||||
0x0c 0x025a | Lista de bala de AC | ||||||
0x0c 0x025b | Promoção AC | ||||||
0x0c 0x025c | AC rebaixamento | ||||||
0x0c 0x025d | Ac sim | ||||||
0x0c 0x025e | AC no | ||||||
0x0c 0x025f | Cancelar AC | 0x00df | Key_cancel | ||||
0x0c 0x0260 | Catálogo AC | ||||||
0x0c 0x0261 | AC compra / checkout | ||||||
0x0c 0x0262 | AC add ao carrinho | ||||||
0x0c 0x0263 | AC expandir | ||||||
0x0c 0x0264 | CA expanda tudo | ||||||
0x0c 0x0265 | Colapso do CA. | ||||||
0x0c 0x0266 | CA colapso tudo | ||||||
0x0c 0x0267 | Visualização de impressão CA. | ||||||
0x0c 0x0268 | Pasta CA Especial | ||||||
0x0c 0x0269 | Modo de inserção CA. | ||||||
0x0c 0x026a | CA DELETE | ||||||
0x0c 0x026b | Um relógio | ||||||
0x0c 0x026c | Desbloqueio AC | ||||||
0x0c 0x026d | CA Protect | ||||||
0x0c 0x026e | AC desprotect | ||||||
0x0c 0x026f | ACN Anex Anex | ||||||
0x0c 0x0270 | AC ALETE COMENTÁRIO | ||||||
0x0c 0x0271 | CA Ver comentário | ||||||
0x0c 0x0272 | CA Selecione Word | ||||||
0x0c 0x0273 | CA Selecionar frase | ||||||
0x0c 0x0274 | CA Selecione o parágrafo | ||||||
0x0c 0x0275 | Coluna de seleção CA. | ||||||
0x0c 0x0276 | CA Selecionar linha | ||||||
0x0c 0x0277 | Tabela de seleção CA. | ||||||
0x0c 0x0278 | CA Selecione Objeto | ||||||
0x0c 0x0279 | Refazer / repetir | 0x00b6 | Key_redo | ||||
0x0c 0x027a | Classificação CA. | ||||||
0x0c 0x027b | COR AC ASSENDENTE | ||||||
0x0c 0x027c | COR AC Descendo | ||||||
0x0c 0x027d | Filtro CA. | ||||||
0x0c 0x027e | Relógio de conjunto CA. | ||||||
0x0c 0x027f | Clock de visualização CA. | ||||||
0x0c 0x0280 | CA Selecionar fuso horário | ||||||
0x0c 0x0281 | Fusos horários de edição CA | ||||||
0x0c 0x0282 | ALARME DE SET CA. | ||||||
0x0c 0x0283 | Alarme transparente CA. | ||||||
0x0c 0x0284 | Alarme de soneca AC | ||||||
0x0c 0x0285 | Alarme de redefinição CA. | ||||||
0x0c 0x0286 | Sincronizar AC | ||||||
0x0c 0x0287 | CA Enviar/Receber | ||||||
0x0c 0x0288 | AC envia para | ||||||
0x0c 0x0289 | Resposta CA. | 0x00E8 | Key_reply | ||||
0x0c 0x028a | AC Responder tudo | ||||||
0x0c 0x028b | AC Award Msg | 0x00E9 | Key_forwardmail | ||||
0x0c 0x028c | AC envia | 0x00E7 | Key_send | ||||
0x0c 0x028d | Arquivo de anexo CA. | ||||||
0x0c 0x028e | Upload CA. | ||||||
0x0c 0x028f | Download de CA (salve o destino como) | ||||||
0x0c 0x0290 | Borders de conjunto CA. | ||||||
0x0c 0x0291 | AC Inserir linha | ||||||
0x0c 0x0292 | Coluna de inserção CA. | ||||||
0x0c 0x0293 | Arquivo de inserção CA. | ||||||
0x0c 0x0294 | CA Insira imagem | ||||||
0x0c 0x0295 | Objeto de inserção CA. | ||||||
0x0c 0x0296 | Símbolo de inserção CA. | ||||||
0x0c 0x0297 | CA Save e Fechar | ||||||
0x0c 0x0298 | Renomear CA. | ||||||
0x0c 0x0299 | Merge AC | ||||||
0x0c 0x029a | Divisão CA. | ||||||
0x0c 0x029b | CA Distribua horizontalmente | ||||||
0x0c 0x029c | AC distribui verticalmente |
Mapeamentos adicionais não hid
Esses mapeamentos descrevem funções que não aparecem no HID, mas para as quais existem códigos de chave do Linux.
LKC | Nome do código da chave do Linux | Versão | AKC | Nome do código -chave do Android | Notas |
---|---|---|---|---|---|
0x01d0 | Key_fn | 3,0 | 0x0077 | Keycode_function | |
0x01d1 | Key_fn_esc | 3,0 | 0x006f | Keycode_escape | 3 |
0x01d2 | Key_fn_f1 | 3,0 | 0x0083 | Keycode_f1 | 3 |
0x01d3 | Key_fn_f2 | 3,0 | 0x0084 | Keycode_f2 | 3 |
0x01d4 | Key_fn_f3 | 3,0 | 0x0085 | Keycode_f3 | 3 |
0x01d5 | Key_fn_f4 | 3,0 | 0x0086 | Keycode_f4 | 3 |
0x01d6 | Key_fn_f5 | 3,0 | 0x0087 | Keycode_f5 | 3 |
0x01d7 | Key_fn_f6 | 3,0 | 0x0088 | Keycode_f6 | 3 |
0x01d8 | Key_fn_f7 | 3,0 | 0x0089 | Keycode_f7 | 3 |
0x01d9 | Key_fn_f8 | 3,0 | 0x008a | Keycode_f8 | 3 |
0x01DA | Key_fn_f9 | 3,0 | 0x008b | Keycode_f9 | 3 |
0x01db | Key_fn_f10 | 3,0 | 0x008c | Keycode_f10 | 3 |
0x01dc | Key_fn_f11 | 3,0 | 0x008d | Keycode_f11 | 3 |
0x01dd | Key_fn_f12 | 3,0 | 0x008E | Keycode_f12 | 3 |
0x01DE | Key_fn_1 | 3,0 | 0x0008 | Keycode_1 | 3 |
0x01df | Key_fn_2 | 3,0 | 0x0009 | Keycode_2 | 3 |
0x01e0 | Key_fn_d | 3,0 | 0x0020 | Keycode_d | 3 |
0x01e1 | Key_fn_e | 3,0 | 0x0021 | Keycode_e | 3 |
0x01e2 | Key_fn_f | 3,0 | 0x0022 | Keycode_f | 3 |
0x01e3 | Key_fn_s | 3,0 | 0x002f | Keycode_s | 3 |
0x01e4 | Key_fn_b | 3,0 | 0x001e | Keycode_b | 3 |
Chaves legadas não suportadas
Esses mapeamentos apareceram nas versões anteriores do Android, mas eram inconsistentes com os códigos de chave Linux não padrão HID ou usados. Eles não são mais suportados.
LKC | Nome do código da chave do Linux | Versão | AKC | Nome do código -chave do Android | Notas |
---|---|---|---|---|---|
0x00db | Key_email | 1.6 | 0x004D | Keycode_at | 4 |
"" | "" | 4,0 | 4 | ||
0x00E3 | Key_star | 1.6 | 0x0011 | Keycode_star | 4 |
"" | "" | 4,0 | 4 | ||
0x00E4 | Key_sharp | 1.6 | 0x0012 | Keycode_pound | 4 |
"" | "" | 4,0 | 4 | ||
0x00E5 | Key_soft1 | 1.6 | 0x0052 | Keycode_menu | 4 |
"" | "" | 4,0 | 4 | ||
0x00E6 | Key_soft2 | 1.6 | 0x0002 | Keycode_soft_right | 4 |
"" | "" | 4,0 | 4 | ||
0x00E7 | Key_send | 1.6 | 0x0005 | Keycode_call | 4 |
"" | "" | 4,0 | 4 | ||
0x00E8 | Key_center | 1.6 | 0x0017 | Keycode_dpad_center | 4 |
"" | "" | 4,0 | 4 | ||
0x00E9 | Key_headsethook | 1.6 | 0x004f | Keycode_headsethook | 4 |
"" | "" | 4,0 | 4 | ||
0x0000 | Key_0_5 | 1.6 | 4 | ||
0x00Eb | Key_2_5 | 1.6 | 4 |
Notas
O código -chave do Android associado a teclas alfanuméricas e simbólicas comuns pode variar com base no layout e no idioma do teclado. Por razões históricas, os códigos de varredura física e os usos ocultos associados às teclas em um teclado geralmente são definidos posicionalmente, mesmo que os rótulos impressos nessas teclas possam variar de um idioma para outro.
Em um teclado em inglês dos EUA (QWERTY), a tecla alfabética superior esquerda é rotulada Q. Em um teclado francês (Azerty), a chave na mesma posição é rotulada A. Apesar da etiqueta, em ambos os teclados a tecla alfabética superior esquerda é referido usando o uso HID 0x07 0x0014, que é mapeado para o código -chave linux key_q.
Quando o Android é configurado com um layout de teclado em inglês nos EUA, o Código do CECHO Linux Key_Q será mapeado para o código -chave do Android KeyCode_Q e produzirá os caracteres 'Q' e 'Q'. No entanto, quando o Android é configurado com um layout de teclado francês, o Código de Chave do Linux Key_Q será mapeado para o código -chave do Android KeyCode_A e produzirá os caracteres 'a' e 'a'.
O código-chave do Android geralmente reflete a interpretação específica do idioma da chave; portanto, um código-chave Android diferente pode ser usado para diferentes idiomas.
0x0c 0x022f AC Zoom
é definido no HID como um controle linear, mas o kernel o mapeia como uma chave, o que provavelmente está incorreto.As teclas de função linux
KEY_FN_*
são mapeadas para os códigos de chave mais simples, mas são despachados com o bit meta deMETA_FUNCTION
definido como true.Antes do sanduíche de sorvete Android 4.0, o layout de chave padrão continha mapeamentos para alguns códigos -chave extras que não foram definidos nos cabeçalhos do kernel Linux da linha principal. Desde então, esses mapeamentos foram removidos porque esses códigos -chave anteriormente indefinidos foram atribuídos significados diferentes em versões mais recentes do kernel Linux.
Fontes
- USB HID Usage Tables v1.12
- Linux 2.6.39 kernel: incluir/linux/input.h, drivers/hid/hid-input.c
- Android ICS: qwerty.kl, genérico.kl, keyevent.java