O Android oferece suporte a vários dispositivos de teclado, incluindo teclados de função especial (controles de volume e energia), teclados QWERTY compactos incorporados e teclados externos completos no estilo de PC.
Este documento descreve apenas teclados físicos. Consulte o SDK do Android para informações sobre teclados virtuais (editores de método de entrada).
Classificação do teclado
Um dispositivo de entrada é classificado como um teclado se uma das seguintes condições for verdadeira:
-
O dispositivo de entrada informa 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 de joystick e gamepad
são informados por eventos EV_KEY
da mesma forma que as teclas do teclado. Assim,
joysticks e gamepads também usam arquivos de mapeamento de teclas para configuração.
Depois que um dispositivo de entrada é classificado como um teclado, o sistema carrega o arquivo de configuração do dispositivo de entrada e o layout do teclado.
Em seguida, o sistema tenta determinar outras características do dispositivo.
-
Se o dispositivo de entrada tiver teclas mapeadas para
KEYCODE_Q
, ele será considerado como tendo um teclado alfabético (em vez de numérico). O recurso de teclado alfabético é informado 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
(todas precisam estar presentes), o dispositivo será considerado como tendo um teclado direcional. O recurso do teclado direcional é informado no objetoConfiguration
do recurso comoNAVIGATION_DPAD
. -
Se o dispositivo de entrada tiver teclas mapeadas para
KEYCODE_BUTTON_A
ou outras teclas relacionadas ao gamepad, ele será considerado como tendo um gamepad.
Requisitos do driver do teclado
-
Os drivers de teclado só devem registrar códigos de tecla para as teclas que oferecem suporte. O registro de códigos de tecla em excesso pode confundir o algoritmo de classificação do dispositivo ou fazer com que o sistema detecte incorretamente os recursos de teclado compatíveis do dispositivo.
-
Os drivers de teclado precisam usar
EV_KEY
para informar pressionamentos de tecla, 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 está sendo repetida automaticamente. -
O Android executa a repetição do teclado. A funcionalidade de repetição automática precisa ser desativada no driver.
-
Os drivers de teclado podem indicar opcionalmente o uso do HID ou o código de verificação de nível baixo enviando
EV_MSC
comMSC_SCANCODE
e um valor indicando o uso ou o código de verificação quando a tecla é pressionada. No momento, essas informações não são usadas pelo Android. -
Os drivers de teclado precisam oferecer suporte à configuração de estados de LED quando
EV_LED
for gravado no dispositivo. O driverhid-input
faz isso automaticamente. No momento em que este artigo foi escrito, o Android usavaLED_CAPSLOCK
,LED_SCROLLLOCK
eLED_NUMLOCK
. Esses LEDs só precisam de suporte quando o teclado tem as luzes indicadoras associadas. -
Os drivers de teclado para teclados integrados (por exemplo, usando uma matriz GPIO) precisam enviar eventos
EV_KEY
com um valor de0
para todas as teclas que ainda estiverem pressionadas quando o dispositivo for para o modo de suspensão. Caso contrário, as teclas podem ficar presas e repetir automaticamente para sempre.
Operação do teclado
Confira a seguir um breve resumo da operação do teclado no Android.
-
O
EventHub
lê eventos brutos do driverevdev
e mapeia códigos de tecla do Linux (às vezes chamados de códigos de verificação) para códigos de tecla do Android usando o mapa de layout de teclas do teclado. -
O
InputReader
consome os eventos brutos e atualiza o estado da metachave. Por exemplo, se a tecla de deslocamento para a esquerda for pressionada ou solta, o leitor vai definir ou redefinir os bitsMETA_SHIFT_LEFT_ON
eMETA_SHIFT_ON
de acordo. -
O
InputReader
notifica oInputDispatcher
sobre o evento principal. -
O
InputDispatcher
pergunta aoWindowManagerPolicy
o que fazer com o evento principal chamandoWindowManagerPolicy.interceptKeyBeforeQueueing
. Esse método faz parte de um caminho crítico responsável por ativar o dispositivo quando determinadas teclas são pressionadas. OEventHub
mantém uma trava de ativação ao longo desse caminho crítico para garantir que ele seja concluído. -
Se uma
InputFilter
estiver em uso, oInputDispatcher
vai dar a ela 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 na linha de execução. -
Quando o
InputDispatcher
retira a chave da fila, ele dá aoWindowManagerPolicy
uma segunda chance de interceptar o evento de tecla chamandoWindowManagerPolicy.interceptKeyBeforeDispatching
. Esse método processa atalhos do sistema e outras funções. -
O
InputDispatcher
identifica o alvo do evento principal (a janela em foco) e aguarda até que ele esteja pronto. Em seguida, oInputDispatcher
envia o evento principal para o aplicativo. -
No aplicativo, o evento de tecla se propaga pela hierarquia de visualização até a visualização em foco para o envio de teclas pré-IME.
-
Se o evento de tecla não for processado no envio antes do IME e um IME estiver em uso, o evento de tecla será enviado ao IME.
-
Se o evento de tecla não for consumido pelo IME, ele será propagado pela hierarquia de visualização até a visualização em foco para o envio de tecla padrão.
-
O aplicativo informa ao
InputDispatcher
se o evento chave foi consumido. Se o evento não for consumido, oInputDispatcher
vai chamarWindowManagerPolicy.dispatchUnhandledKey
para aplicar o comportamento "padrão". Dependendo da ação de fallback, o ciclo de envio de eventos principais pode ser reiniciado usando um código de chave diferente. Por exemplo, se um aplicativo não processarKEYCODE_ESCAPE
, o sistema poderá reenviar o evento principal comoKEYCODE_BACK
.
Configuração do teclado
O comportamento do teclado é determinado pelo layout das teclas, pelo mapa de caracteres e pela configuração do dispositivo de entrada.
Consulte as seções a seguir para mais detalhes sobre os arquivos que participam da configuração do teclado:
- Arquivos de layout de chave
- Arquivos de mapa de caracteres-chave
- Arquivos de configuração de dispositivos de entrada
Propriedades
As propriedades de configuração do dispositivo de entrada a seguir são usadas para teclados.
keyboard.layout
Definição:keyboard.layout
= <name>
Especifica o nome do arquivo de layout de chave associado ao dispositivo de entrada,
excluindo a extensão .kl
. Se esse arquivo não for encontrado, o sistema de entrada
usará o layout de teclas padrão.
Os espaços no nome são convertidos em sublinhados durante a pesquisa.
Consulte a documentação do arquivo de layout de chave para mais detalhes.
keyboard.characterMap
Definição:keyboard.characterMap
= <name>
Especifica o nome do arquivo de mapa de caracteres de 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 de chave para mais detalhes.
keyboard.orientationAware
Definição:keyboard.orientationAware
= 0
| 1
Especifica se o teclado precisa reagir às mudanças de orientação da tela.
-
Se o valor for
1
, as teclas do teclado direcional serão giradas quando a orientação da tela associada mudar. -
Se o valor for
0
, o teclado não será afetado por mudanças na orientação da tela.
O valor padrão é 0
.
A detecção de orientação é usada para oferecer suporte à rotação das teclas do teclado direcional,
como no Motorola Droid. Por exemplo, quando o dispositivo é girado
no sentido horário em 90 graus a partir da orientação natural, KEYCODE_DPAD_UP
é
remapeado para produzir KEYCODE_DPAD_RIGHT
, já que a tecla "para cima" aponta
para "direita" quando o dispositivo é mantido nessa orientação.
keyboard.builtIn
Definição:keyboard.builtIn
= 0
| 1
Especifica se o teclado é integrado (fisicamente conectado) ou não.
O valor padrão é 1
se o nome do dispositivo terminar com -keypad
. Caso contrário, será 0
.
O teclado integrado sempre recebe um ID de dispositivo de 0
. Outros teclados
que não são integrados recebem IDs de dispositivos exclusivos diferentes de zero.
O uso de um ID de 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 de 0
. Esse campo foi
descontinuado na API, mas os aplicativos mais antigos ainda podem usá-lo.
Um teclado de função especial (cujo mapeamento de caracteres de tecla especifica um
tipo de SPECIAL_FUNCTION
) nunca será registrado como o teclado integrado,
independentemente da configuração dessa propriedade. Isso ocorre porque um teclado de função especial
não é destinado a ser usado para digitação geral.
Exemplos de configurações
# This is an example input device configuration file for a built-in # keyboard that has a DPad. # The keyboard is internal because it is part of the device. device.internal = 1 # The keyboard is the default built-in keyboard so it should be assigned # an id of 0. keyboard.builtIn = 1 # The keyboard includes a DPad which is mounted on the device. As the device # is rotated the orientation of the DPad rotates along with it, so the DPad must # be aware of the display orientation. This ensures that pressing 'up' on the # DPad always means 'up' from the perspective of the user, even when the entire # device has been rotated. keyboard.orientationAware = 1
Observações sobre compatibilidade
Antes do Honeycomb, o mapeador de entrada de teclado não usava propriedades de configuração.
Todos os teclados foram considerados conectados fisicamente e com orientação. O layout
padrão e o mapa de caracteres da chave foram nomeados como qwerty
em vez de Generic
. O formato
do mapa de caracteres também era muito diferente, e o framework não oferecia suporte
a teclados completos ou externos no estilo PC.
Ao fazer upgrade de dispositivos para o Honeycomb, crie ou atualize a configuração necessária e os arquivos de mapa de chaves.
Usos de HID, códigos de chave do Linux e códigos de 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
do Linux e os drivers HID específicos do fornecedor e do dispositivo são responsáveis
por analisar relatórios HID e mapear usos HID para códigos de chave do Linux.
À medida que o Android lê eventos EV_KEY
do kernel do Linux, ele traduz cada
código de chave do Linux no código de chave do Android correspondente, de acordo com o
arquivo de layout de chave do dispositivo.
Quando o evento de tecla é enviado a um aplicativo, a instância android.view.KeyEvent
informa o código de tecla do Linux como o valor de getScanCode()
e o
código de tecla do Android como o valor de getKeyCode()
. Para os fins do
framework, apenas o valor de getKeyCode()
é importante.
As informações de uso do HID não são usadas pelo próprio Android nem transmitidas para os aplicativos.
Tabelas de código
As tabelas a seguir mostram como os usos de HID, os códigos de tecla do Linux e os códigos de tecla do Android estão relacionados.
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 "Anotações" se refere às anotações postadas após a tabela.
A coluna "Versão" especifica a primeira versão da plataforma Android que incluiu essa chave no 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 é 1.6.
-
No Gingerbread (2.3) e em versões anteriores, o mapa de teclas padrão era
qwerty.kl
. Esse mapa de teclas foi destinado apenas ao uso com o Android Emulator e não foi projetado para oferecer suporte a teclados externos arbitrários. No entanto, alguns OEMs adicionaram suporte a teclados Bluetooth à plataforma e usaramqwerty.kl
para fornecer os mapeamentos de teclado necessários. Consequentemente, esses mapeamentos mais antigos podem ser interessantes para OEMs que estão criando periféricos para esses dispositivos específicos. Os mapeamentos são substancialmente diferentes dos atuais, principalmente no que diz respeito ao tratamento da chaveHOME
. É recomendável 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 teclas padrão é
Generic.kl
. Esse mapa de teclas foi projetado para oferecer suporte a teclados completos de PC. A maioria das funcionalidades dos teclados HID padrão deve funcionar imediatamente.
O mapeamento do código da chave pode variar de acordo com as versões do kernel do Linux e do Android. Quando as mudanças são conhecidas nos mapas de teclas padrão do Android, elas são indicadas na coluna "Versão".
Os drivers HID específicos do dispositivo e os mapas de teclas podem aplicar mapeamentos diferentes do que os indicados aqui.
Página de teclado e teclado numérico HID (0x07)
Uso de HID | Nome de uso do HID | LKC | Nome do código de chave do Linux | Versão | AKC | Nome do código de chave do Android | Observações |
---|---|---|---|---|---|---|---|
0x07 0x0001 | Erro de rolagem do teclado | ||||||
0x07 0x0002 | Falha no POST do teclado | ||||||
0x07 0x0003 | Erro do 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 | 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 i e I | 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 | Tecla "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 | Tecla q e Q do teclado | 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 | KEY_S | 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 Return (ENTER) | 0x001c | KEY_ENTER | 1.6 | 0x0042 | KEYCODE_ENTER | 1 |
0x07 0x0029 | Tecla ESCAPE | 0x0001 | KEY_ESC | 3.0 | 0x006f | KEYCODE_ESCAPE | |
"" | "" | "" | "" | 2.3 | 0x0004 | KEYCODE_BACK | |
0x07 0x002a | Tecla DELETE (Backspace) do teclado | 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 | Tecla ; 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 | Tecla ` 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 | Caps Lock do teclado | 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 | Tecla F5 do teclado | 0x003f | KEY_F5 | 3.0 | 0x0087 | KEYCODE_F5 | |
0x07 0x003f | Tecla F6 | 0x0040 | KEY_F6 | 3.0 | 0x0088 | KEYCODE_F6 | |
0x07 0x0040 | Teclado F7 | 0x0041 | KEY_F7 | 3.0 | 0x0089 | KEYCODE_F7 | |
0x07 0x0041 | Tecla F8 | 0x0042 | KEY_F8 | 3.0 | 0x008a | KEYCODE_F8 | |
0x07 0x0042 | Tecla 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 | Print Screen do teclado | 0x0063 | KEY_SYSRQ | 3.0 | 0x0078 | KEYCODE_SYSRQ | |
0x07 0x0047 | Scroll Lock 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 | Inserir no teclado | 0x006e | KEY_INSERT | 3.0 | 0x007c | KEYCODE_INSERT | |
0x07 0x004a | Teclado Home | 0x0066 | KEY_HOME | 3.0 | 0x007a | KEYCODE_MOVE_HOME | |
"" | "" | "" | "" | 1.6 | 0x0003 | KEYCODE_HOME | |
0x07 0x004b | Tecla Page Up do teclado | 0x0068 | KEY_PAGEUP | 3.0 | 0x005c | KEYCODE_PAGE_UP | |
0x07 0x004c | Tecla de excluir para frente do teclado | 0x006f | KEY_DELETE | 3.0 | 0x0070 | KEYCODE_FORWARD_DEL | |
0x07 0x004d | Teclado "End" | 0x006b | KEY_END | 3.0 | 0x007b | KEYCODE_MOVE_END | |
"" | "" | "" | "" | 1.6 | 0x0006 | KEYCODE_ENDCALL | |
0x07 0x004e | Tecla 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 | Tecla 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 | Tecla ENTER do teclado | 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 botão 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 não americano: \ 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 | Alimentação 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 | Execução do teclado | 0x0086 | KEY_OPEN | ||||
0x07 0x0075 | Ajuda do teclado | 0x008a | KEY_HELP | ||||
0x07 0x0076 | Menu do teclado | 0x0082 | KEY_PROPS | ||||
0x07 0x0077 | Selecionar teclado | 0x0084 | KEY_FRONT | ||||
0x07 0x0078 | Parar o teclado | 0x0080 | KEY_STOP | 3.0 | 0x0056 | KEYCODE_MEDIA_STOP | |
0x07 0x0079 | Teclado novamente | 0x0081 | KEY_AGAIN | ||||
0x07 0x007a | Desfazer no teclado | 0x0083 | KEY_UNDO | ||||
0x07 0x007b | Corte do teclado | 0x0089 | KEY_CUT | ||||
0x07 0x007c | Copiar teclado | 0x0085 | KEY_COPY | ||||
0x07 0x007d | Colar no teclado | 0x0087 | KEY_PASTE | ||||
0x07 0x007e | Pesquisa no teclado | 0x0088 | KEY_FIND | ||||
0x07 0x007f | Desativar som do teclado | 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 | Caps Lock de bloqueio do teclado | ||||||
0x07 0x0083 | Tecla Num Lock para bloqueio do teclado | ||||||
0x07 0x0084 | Bloqueio do teclado Scroll Lock | ||||||
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 internacional5 | 0x005e | KEY_MUHENKAN | ||||
0x07 0x008c | Teclado internacional6 | 0x005f | KEY_KPJPCOMMA | ||||
0x07 0x008d | Teclado internacional7 | ||||||
0x07 0x008e | Teclado internacional8 | ||||||
0x07 0x008f | Teclado internacional9 | ||||||
0x07 0x0090 | Teclado 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 | Teclado com exclusão alternativa | ||||||
0x07 0x009a | Tecla SysReq/Attention do teclado | ||||||
0x07 0x009b | Cancelar teclado | ||||||
0x07 0x009c | Limpar teclado | ||||||
0x07 0x009d | Prioridade do teclado | ||||||
0x07 0x009e | Retorno do teclado | ||||||
0x07 0x009f | Separador de teclado | ||||||
0x07 0x00a0 | Teclado fora | ||||||
0x07 0x00a1 | Teclado Oper | ||||||
0x07 0x00a2 | Limpar/Novamente no teclado | ||||||
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 da 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 | Keypad { | ||||||
0x07 0x00b9 | Teclado } | ||||||
0x07 0x00ba | Guia "Keypad" | ||||||
0x07 0x00bb | Tecla backspace do teclado | ||||||
0x07 0x00bc | Teclado A | ||||||
0x07 0x00bd | Teclado B | ||||||
0x07 0x00be | Teclado C | ||||||
0x07 0x00bf | Teclado D | ||||||
0x07 0x00c0 | Teclado E | ||||||
0x07 0x00c1 | Teclado F | ||||||
0x07 0x00c2 | XOR do teclado | ||||||
0x07 0x00c3 | Teclado ^ | ||||||
0x07 0x00c4 | Teclado % | ||||||
0x07 0x00c5 | Teclado < | ||||||
0x07 0x00c6 | Teclado > | ||||||
0x07 0x00c7 | Teclado e | ||||||
0x07 0x00c8 | Teclado | ||||||
0x07 0x00c9 | Teclado | | ||||||
0x07 0x00ca | Teclado || | ||||||
0x07 0x00cb | Teclado : | ||||||
0x07 0x00cc | Teclado # | ||||||
0x07 0x00cd | Espaço no teclado | ||||||
0x07 0x00ce | Teclado @ | ||||||
0x07 0x00cf | Teclado ! | ||||||
0x07 0x00d0 | Repositório de memória do teclado | ||||||
0x07 0x00d1 | Recall 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 da 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 | Teclado binário | ||||||
0x07 0x00db | Teclado Octal | ||||||
0x07 0x00dc | Teclas decimais | ||||||
0x07 0x00dd | Teclado hexadecimal | ||||||
0x07 0x00e0 | Controle esquerdo do teclado | 0x001d | KEY_LEFTCTRL | 3.0 | 0x0071 | KEYCODE_CTRL_LEFT | |
0x07 0x00e1 | Tecla Shift esquerda | 0x002a | KEY_LEFTSHIFT | 1.6 | 0x003b | KEYCODE_SHIFT_LEFT | |
0x07 0x00e2 | Alt esquerdo do teclado | 0x0038 | KEY_LEFTALT | 1.6 | 0x0039 | KEYCODE_ALT_LEFT | |
0x07 0x00e3 | GUI do teclado esquerdo | 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 | Tecla Shift direita | 0x0036 | KEY_RIGHTSHIFT | 1.6 | 0x003c | KEYCODE_SHIFT_RIGHT | |
0x07 0x00e6 | Alt direito do teclado | 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 | 0x00ad | KEY_REFRESH | |||||
0x07 0x00fb | 0x008c | KEY_CALC | 4.0.3 | 0x00d2 | KEYCODE_CALCULATOR |
Página de computador genérica HID (0x01)
Uso de HID | Nome de uso do HID | LKC | Nome do código de chave do Linux | Versão | AKC | Nome do código de chave do Android | Observações |
---|---|---|---|---|---|---|---|
0x01 0x0081 | Desligar o 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 o 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 app 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 à direita | ||||||
0x01 0x008b | Menu do sistema à esquerda | ||||||
0x01 0x008c | Menu do sistema para cima | ||||||
0x01 0x008d | Menu do sistema inativo | ||||||
0x01 0x008e | Reinicialização a frio do sistema | ||||||
0x01 0x008f | Reinicialização com estado salvo do sistema | ||||||
0x01 0x00a0 | Base do sistema | ||||||
0x01 0x00a1 | Desafixação do sistema | ||||||
0x01 0x00a2 | Configuração do sistema | ||||||
0x01 0x00a3 | Falha do sistema | ||||||
0x01 0x00a4 | Interrupção do depurador do sistema | ||||||
0x01 0x00a5 | Intervalo do aplicativo | ||||||
0x01 0x00a6 | Intervalo do depurador de aplicativos | ||||||
0x01 0x00a7 | Desativação do alto-falante do sistema | ||||||
0x01 0x00a8 | Hibernação do sistema | ||||||
0x01 0x00b0 | Inversão da tela do sistema | ||||||
0x01 0x00b1 | Tela interna do sistema | ||||||
0x01 0x00b2 | Tela externa do sistema | ||||||
0x01 0x00b3 | Tela do sistema: ambos | ||||||
0x01 0x00b4 | Tela do sistema Dual | ||||||
0x01 0x00b5 | Alternar tela do sistema Int/Ext | ||||||
0x01 0x00b6 | Troca de tela do sistema Prim./Seg. | ||||||
0x01 0x00b7 | Escalação automática do visor de LCD do sistema |
Página de consumidor HID (0x0c)
Uso de HID | Nome de uso do HID | LKC | Nome do código de chave do Linux | Versão | AKC | Nome do código de chave do Android | Observações |
---|---|---|---|---|---|---|---|
0x0c 0x0030 | Energia | ||||||
0x0c 0x0031 | Redefinir | ||||||
0x0c 0x0032 | Sono | ||||||
0x0c 0x0033 | Sono após | ||||||
0x0c 0x0034 | Modo de suspensão | 0x008e | KEY_SLEEP | 4.0 | 0x001a | KEYCODE_POWER | |
0x0c 0x0040 | Menu | 0x008b | KEY_MENU | 1.6 | 0x0052 | KEYCODE_MENU | |
0x0c 0x0041 | Escolha de menu | ||||||
0x0c 0x0042 | Menu Up | ||||||
0x0c 0x0043 | Menu para baixo | ||||||
0x0c 0x0044 | Menu à esquerda | ||||||
0x0c 0x0045 | Menu à direita | 0x0181 | KEY_RIGHT | ||||
0x0c 0x0046 | Menu Escape | ||||||
0x0c 0x0047 | Aumento do valor do menu | ||||||
0x0c 0x0048 | Menu Value Decrease | ||||||
0x0c 0x0067 | Ativar o picture-in-picture | 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 | Recall Last | 0x0195 | KEY_LAST | 0xe5 | KEYCODE_LAST_CHANNEL | Adicionado em aosp/1365551 | |
0x0c 0x0084 | Entrar no canal | ||||||
0x0c 0x0085 | Pedir filme | ||||||
0x0c 0x0088 | Computador Media Select | 0x0178 | KEY_PC | ||||
0x0c 0x0089 | Media Select TV | 0x0179 | KEY_TV | 3.0 | 0x00aa | KEYCODE_TV | |
0x0c 0x008a | Media Select WWW | 0x0096 | KEY_WWW | 1.6 | 0x0040 | KEYCODE_EXPLORER | |
0x0c 0x008b | DVD do Media Select | 0x0185 | KEY_DVD | ||||
0x0c 0x008c | Media Select Telephone | 0x00a9 | KEY_PHONE | 3.0 | 0x0005 | KEYCODE_CALL | |
0x0c 0x008d | Guia de programação do Media Select | 0x016a | KEY_PROGRAM | 3.0 | 0x00ac | KEYCODE_GUIDE | |
0x0c 0x008e | Media Select Video Phone | 0x01a0 | KEY_VIDEOPHONE | ||||
0x0c 0x008f | Jogos do Media Select | 0x01a1 | KEY_GAMES | ||||
0x0c 0x0090 | Mensagens de seleção de mídia | 0x018c | KEY_MEMO | ||||
0x0c 0x0091 | CD do Media Select | 0x017f | KEY_CD | ||||
0x0c 0x0092 | Media Select VCR | 0x017b | KEY_VCR | ||||
0x0c 0x0093 | Sintonizador de seleção de mídia | 0x0182 | KEY_TUNER | ||||
0x0c 0x0094 | Sair | 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 Media Select | 0x017d | KEY_SAT | ||||
0x0c 0x0099 | Segurança do Media Select | ||||||
0x0c 0x009a | Media Select Home | 0x016e | KEY_PVR | 3.0 | 0x00ad | KEYCODE_DVR | |
0x0c 0x0061 | 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 do canal | 0x0193 | KEY_CHANNELDOWN | 3.0 | 0x00a7 | KEYCODE_CHANNEL_DOWN | |
0x0c 0x009e | Media Select SAP | ||||||
0x0c 0x00a0 | VCR Plus | 0x017c | KEY_VCR2 | ||||
0x0c 0x00a1 | Uma vez | ||||||
0x0c 0x00a2 | Diariamente | ||||||
0x0c 0x00a3 | Semanal | ||||||
0x0c 0x00a4 | Mensal | ||||||
0x0c 0x00b0 | Reproduzir | 0x00cf | KEY_PLAY | 3.0 | 0x007e | KEYCODE_MEDIA_PLAY | |
0x0c 0x00b1 | Pausar | 0x0077 | KEY_PAUSE | 3.0 | 0x0079 | KEYCODE_BREAK | |
0x0c 0x00b2 | Gravar | 0x00a7 | KEY_RECORD | 3.0 | 0x0082 | KEYCODE_MEDIA_RECORD | |
0x0c 0x00b3 | Avançar rapidamente | 0x00d0 | KEY_FASTFORWARD | 3.0 | 0x005a | KEYCODE_MEDIA_FAST_FORWARD | |
0x0c 0x00b4 | Retroceder | 0x00a8 | KEY_REWIND | 3.0 | 0x0059 | KEYCODE_MEDIA_REWIND | |
0x0c 0x00b5 | Ler a próxima faixa | 0x00a3 | KEY_NEXTSONG | 3.0 | 0x0057 | KEYCODE_MEDIA_NEXT | |
0x0c 0x00b6 | Procurar 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 | Reprodução aleatória | ||||||
0x0c 0x00ba | Selecionar disco | ||||||
0x0c 0x00bb | Enter Disc | ||||||
0x0c 0x00bc | Repetir | 0x01b7 | KEY_MEDIA_REPEAT | ||||
0x0c 0x00be | Acompanhar normalmente | ||||||
0x0c 0x00c0 | Frame para frente | ||||||
0x0c 0x00c1 | Frame de volta | ||||||
0x0c 0x00c2 | Marca | ||||||
0x0c 0x00c3 | Marca clara | ||||||
0x0c 0x00c4 | Repetir a partir da marca | ||||||
0x0c 0x00c5 | Retorno à marca | ||||||
0x0c 0x00c6 | Marcação de pesquisa para frente | ||||||
0x0c 0x00c7 | Marcação de pesquisa para trás | ||||||
0x0c 0x00c8 | Redefinição do contador | ||||||
0x0c 0x00c9 | Mostrar contador | ||||||
0x0c 0x00ca | Acompanhamento do incremento | ||||||
0x0c 0x00cb | Incremento de rastreamento | ||||||
0x0c 0x00cc | Parar / ejetar | ||||||
0x0c 0x00cd | Reproduzir/Pausar | 0x00a4 | KEY_PLAYPAUSE | 3.0 | 0x0055 | KEYCODE_MEDIA_PLAY_PAUSE | |
0x0c 0x00ce | Reproduzir / Pular | ||||||
0x0c 0x00e2 | Desativar som | 0x0071 | KEY_MUTE | 3.0 | 0x00a4 | KEYCODE_VOLUME_MUTE | |
0x0c 0x00e5 | Realçar graves | 0x00d1 | KEY_BASSBOOST | ||||
0x0c 0x00e6 | Modo surround | ||||||
0x0c 0x00e7 | Intensidade | ||||||
0x0c 0x00e8 | MPX | ||||||
0x0c 0x00e9 | Aumento de volume | 0x0073 | KEY_VOLUMEUP | 1.6 | 0x0018 | KEYCODE_VOLUME_UP | |
0x0c 0x00ea | Diminuir 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 | Configuração do botão de início da AL. Ferramenta | ||||||
0x0c 0x0182 | Configuração de botão programável de AL. | 0x009c | KEY_BOOKMARKS | 3.0 | 0x00ae | KEYCODE_BOOKMARK | |
0x0c 0x0183 | Configuração do controle do consumidor de 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 de gráficos da AL | 0x01a8 | KEY_GRAPHICSEDITOR | ||||
0x0c 0x0188 | App de apresentação de IA | 0x01a9 | KEY_PRESENTATION | ||||
0x0c 0x0189 | App de banco de dados de IA | 0x01aa | KEY_DATABASE | ||||
0x0c 0x018a | Leitor de e-mail do AL | 0x009b | KEY_MAIL | 1.6 | 0x0041 | KEYCODE_ENVELOPE | |
0x0c 0x018b | AL Newsreader | 0x01ab | KEY_NEWS | ||||
0x0c 0x018c | AL Voicemail | 0x01ac | KEY_VOICEMAIL | ||||
0x0c 0x018d | AL Contacts / Address Book | 0x01ad | KEY_ADDRESSBOOK | 4.0.3 | 0x00cf | KEYCODE_CONTACTS | |
0x0c 0x018e | Agenda / programação | 0x018d | KEY_CALENDAR | 4.0.3 | 0x00d0 | KEYCODE_CALENDAR | |
0x0c 0x018f | Gerente de tarefas / projeto de AL | ||||||
0x0c 0x0190 | Registro / diário / cartão de ponto | ||||||
0x0c 0x0191 | AL Checkbook / Finance | 0x00db | KEY_FINANCE | ||||
0x0c 0x0192 | Calculadora de AL | 0x008c | KEY_CALC | 4.0.3 | 0x00d2 | KEYCODE_CALCULATOR | |
0x0c 0x0193 | AL A/V Capture / Playback | ||||||
0x0c 0x0194 | Navegador de máquina local do AL | 0x0090 | KEY_FILE | ||||
0x0c 0x0195 | Navegador LAN/WAN AL | ||||||
0x0c 0x0196 | Navegador AL Internet | 0x0096 | KEY_WWW | 1.6 | 0x0040 | KEYCODE_EXPLORER | |
0x0c 0x0197 | AL Remote Networking/ISP Connect | ||||||
0x0c 0x0198 | Conferência de rede da AL | ||||||
0x0c 0x0199 | Chat de rede AL | 0x00d8 | KEY_CHAT | ||||
0x0c 0x019a | AL Telephony / Dialer | ||||||
0x0c 0x019b | AL Logon | ||||||
0x0c 0x019c | Desconexão do AL | 0x01b1 | KEY_LOGOFF | ||||
0x0c 0x019d | AL Logon / Logoff | ||||||
0x0c 0x019e | AL Terminal Lock / Screensaver | 0x0098 | KEY_COFFEE | 4.0 | 0x001a | KEYCODE_POWER | |
0x0c 0x019f | Painel de controle do AL | ||||||
0x0c 0x01a0 | Processador de linha de comando / Execução de AL | ||||||
0x0c 0x01a1 | Gerenciador de tarefas / processo de IA | ||||||
0x0c 0x01a2 | AL Select Task / Application | ||||||
0x0c 0x01a3 | Próxima tarefa / aplicativo da AL | ||||||
0x0c 0x01a4 | Tarefa / aplicativo anterior da IA | ||||||
0x0c 0x01a5 | Tarefa / app de interrupção preventiva de AL. | ||||||
0x0c 0x01a6 | Central de Ajuda integrada do AL | 0x008a | KEY_HELP | ||||
0x0c 0x01a7 | Documentos do AL | 0x00eb | KEY_DOCUMENTS | ||||
0x0c 0x01a8 | Dicionário de sinônimos e antônimos do AL | ||||||
0x0c 0x01a9 | Dicionário de AL | ||||||
0x0c 0x01aa | AL Desktop | ||||||
0x0c 0x01ab | Verificação ortográfica AL | 0x01b0 | KEY_SPELLCHECK | ||||
0x0c 0x01ac | Verificação gramatical do AL | ||||||
0x0c 0x01ad | Status da rede 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 do AL | ||||||
0x0c 0x01b2 | Alarmes AL | ||||||
0x0c 0x01b3 | Relógio AL | ||||||
0x0c 0x01b4 | Navegador de arquivos AL | ||||||
0x0c 0x01b5 | Status de energia do 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 | Carteira digital da AL | ||||||
0x0c 0x01bc | Mensagens instantâneas do AL | 0x01ae | KEY_MESSENGER | ||||
0x0c 0x01bd | AL OEM Features / Tips Browser | 0x0166 | KEY_INFO | ||||
0x0c 0x01be | Ajuda do OEM de AL | ||||||
0x0c 0x01bf | Comunidade on-line da AL | ||||||
0x0c 0x01c0 | Navegador de conteúdo de entretenimento AL | ||||||
0x0c 0x01c1 | Navegador de compras on-line AL | ||||||
0x0c 0x01c2 | AL SmartCard Information / Help | ||||||
0x0c 0x01c3 | Navegador de mercado / finanças AL | ||||||
0x0c 0x01c4 | AL Customized Corp. News Browser | ||||||
0x0c 0x01c5 | Navegador de atividades on-line do AL | ||||||
0x0c 0x01c6 | AL Research / Search Browser | ||||||
0x0c 0x01c7 | AL Audio Player | ||||||
0x0c 0x0201 | AC New | 0x00b5 | KEY_NEW | ||||
0x0c 0x0202 | AC aberto | 0x0086 | KEY_OPEN | ||||
0x0c 0x0203 | AC fechar | 0x00ce | KEY_CLOSE | ||||
0x0c 0x0204 | Saída de CA | 0x00ae | KEY_EXIT | ||||
0x0c 0x0205 | AC Maximize | ||||||
0x0c 0x0206 | Minimizar AC | ||||||
0x0c 0x0207 | Economia de energia | 0x00ea | KEY_SAVE | ||||
0x0c 0x0208 | AC Print | 0x00d2 | KEY_PRINT | ||||
0x0c 0x0209 | Propriedades de AC | 0x0082 | KEY_PROPS | ||||
0x0c 0x021a | Desfazer AC | 0x0083 | KEY_UNDO | ||||
0x0c 0x021b | Texto do AC | 0x0085 | KEY_COPY | ||||
0x0c 0x021c | Corte de AC | 0x0089 | KEY_CUT | ||||
0x0c 0x021d | AC Paste | 0x0087 | KEY_PASTE | ||||
0x0c 0x021e | AC Selecionar tudo | ||||||
0x0c 0x021f | Encontrar AC | 0x0088 | KEY_FIND | ||||
0x0c 0x0220 | AC Localizar e substituir | ||||||
0x0c 0x0221 | Pesquisa de AC | 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 para frente | 0x009f | KEY_FORWARD | 3.0 | 0x007d | KEYCODE_FORWARD | |
0x0c 0x0226 | Parada de AC | 0x0080 | KEY_STOP | 3.0 | 0x0056 | KEYCODE_MEDIA_STOP | |
0x0c 0x0227 | Atualização de AC | 0x00ad | KEY_REFRESH | ||||
0x0c 0x0228 | AC Previous Link | ||||||
0x0c 0x0229 | AC Next Link | ||||||
0x0c 0x022a | Favoritos do AC | 0x009c | KEY_BOOKMARKS | 3.0 | 0x00ae | KEYCODE_BOOKMARK | |
0x0c 0x022b | Histórico de AC | ||||||
0x0c 0x022c | Assinaturas de AC | ||||||
0x0c 0x022d | Zoom In AC | 0x01a2 | KEY_ZOOMIN | ||||
0x0c 0x022e | AC Zoom Out | 0x01a3 | KEY_ZOOMOUT | ||||
0x0c 0x022f | Zoom AC | 0x01a4 | KEY_ZOOMRESET | 2 | |||
0x0c 0x0230 | Tela cheia do AC | ||||||
0x0c 0x0231 | Visão normal de AC | ||||||
0x0c 0x0232 | Alternar visualização de AC | ||||||
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 | Movimento rápido para a esquerda | ||||||
0x0c 0x0237 | Movimento rápido para a direita | ||||||
0x0c 0x0239 | AC Nova janela | ||||||
0x0c 0x023a | AC Tile Horizontally | ||||||
0x0c 0x023b | AC Tile Vertically | ||||||
0x0c 0x023c | Formato de AC | ||||||
0x0c 0x023d | Edição de AC | ||||||
0x0c 0x023e | AC Bold | ||||||
0x0c 0x023f | AC Italics | ||||||
0x0c 0x0240 | Sublinha AC | ||||||
0x0c 0x0241 | Tachado AC | ||||||
0x0c 0x0242 | Subscrito AC | ||||||
0x0c 0x0243 | AC sobrescrito | ||||||
0x0c 0x0244 | AC All Caps | ||||||
0x0c 0x0245 | Rotação de AC | ||||||
0x0c 0x0246 | Redimensionamento de AC | ||||||
0x0c 0x0247 | AC Virar horizontal | ||||||
0x0c 0x0248 | AC Flip Vertical | ||||||
0x0c 0x0249 | Espelho horizontal com ar condicionado | ||||||
0x0c 0x024a | Espelho vertical com ar condicionado | ||||||
0x0c 0x024b | Selecionar fonte AC | ||||||
0x0c 0x024c | Cor da fonte do AC | ||||||
0x0c 0x024d | Tamanho da fonte do AC | ||||||
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 | Diminuição do recuo de AC | ||||||
0x0c 0x0257 | Aumento do recuo AC | ||||||
0x0c 0x0258 | Lista numerada de AC | ||||||
0x0c 0x0259 | Numeração de reinicializações do AC | ||||||
0x0c 0x025a | Lista com marcadores AC | ||||||
0x0c 0x025b | Promoção de AC | ||||||
0x0c 0x025c | AC Demote | ||||||
0x0c 0x025d | Sim, AC | ||||||
0x0c 0x025e | AC No | ||||||
0x0c 0x025f | Cancelamento de AC | 0x00df | KEY_CANCEL | ||||
0x0c 0x0260 | Catálogo de AC | ||||||
0x0c 0x0261 | Compra / finalização de compra | ||||||
0x0c 0x0262 | AC Add to Cart | ||||||
0x0c 0x0263 | Expansão de AC | ||||||
0x0c 0x0264 | AC Expand All | ||||||
0x0c 0x0265 | Colapso de AC | ||||||
0x0c 0x0266 | AC Recolher tudo | ||||||
0x0c 0x0267 | Visualização de impressão do AC | ||||||
0x0c 0x0268 | AC Colar especial | ||||||
0x0c 0x0269 | Modo de inserção de CA | ||||||
0x0c 0x026a | Exclusão de AC | ||||||
0x0c 0x026b | Bloqueio de ar condicionado | ||||||
0x0c 0x026c | Desbloqueio de AC | ||||||
0x0c 0x026d | AC Protect | ||||||
0x0c 0x026e | AC Unprotect | ||||||
0x0c 0x026f | AC Attach Comment | ||||||
0x0c 0x0270 | AC Excluir comentário | ||||||
0x0c 0x0271 | AC View Comment | ||||||
0x0c 0x0272 | AC Select Word | ||||||
0x0c 0x0273 | Frase de seleção de AC | ||||||
0x0c 0x0274 | AC Select Paragraph | ||||||
0x0c 0x0275 | AC Selecionar coluna | ||||||
0x0c 0x0276 | Linha de seleção de AC | ||||||
0x0c 0x0277 | Tabela de seleção de AC | ||||||
0x0c 0x0278 | AC Select Object | ||||||
0x0c 0x0279 | Refazer / repetir | 0x00b6 | KEY_REDO | ||||
0x0c 0x027a | Classificação de AC | ||||||
0x0c 0x027b | AC Ordenar em ordem crescente | ||||||
0x0c 0x027c | AC Sort Descending | ||||||
0x0c 0x027d | Filtro de CA | ||||||
0x0c 0x027e | Relógio de ajuste de CA | ||||||
0x0c 0x027f | Relógio AC View | ||||||
0x0c 0x0280 | AC Selecionar fuso horário | ||||||
0x0c 0x0281 | AC Edit Time Zones | ||||||
0x0c 0x0282 | AC Set Alarm | ||||||
0x0c 0x0283 | Alarme de desativação do AC | ||||||
0x0c 0x0284 | Alarme de soneca | ||||||
0x0c 0x0285 | Alarme de redefinição de AC | ||||||
0x0c 0x0286 | Sincronizar o ar-condicionado | ||||||
0x0c 0x0287 | Enviar/receber AC | ||||||
0x0c 0x0288 | AC Send To | ||||||
0x0c 0x0289 | Resposta AC | 0x00e8 | KEY_REPLY | ||||
0x0c 0x028a | AC Responder a todos | ||||||
0x0c 0x028b | AC Forward Msg | 0x00e9 | KEY_FORWARDMAIL | ||||
0x0c 0x028c | Envio de AC | 0x00e7 | KEY_SEND | ||||
0x0c 0x028d | AC Attach File | ||||||
0x0c 0x028e | Upload de AC | ||||||
0x0c 0x028f | Download de AC (salvar destino como) | ||||||
0x0c 0x0290 | AC Set Borders | ||||||
0x0c 0x0291 | Linha de inserção de AC | ||||||
0x0c 0x0292 | Coluna de inserção de AC | ||||||
0x0c 0x0293 | Inserir arquivo de AC | ||||||
0x0c 0x0294 | AC Inserir imagem | ||||||
0x0c 0x0295 | Objeto de inserção de AC | ||||||
0x0c 0x0296 | Símbolo de inserção de AC | ||||||
0x0c 0x0297 | AC Save and Close | ||||||
0x0c 0x0298 | Renomear AC | ||||||
0x0c 0x0299 | Fusão de AC | ||||||
0x0c 0x029a | Divisão de ar condicionado | ||||||
0x0c 0x029b | AC Distribuir horizontalmente | ||||||
0x0c 0x029c | AC Distribuir vertical |
Outros mapeamentos não HID
Esses mapeamentos descrevem funções que não aparecem no HID, mas para as quais os códigos de chave do Linux existem.
LKC | Nome do código de chave do Linux | Versão | AKC | Nome do código de chave do Android | Observações |
---|---|---|---|---|---|
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 sem suporte
Esses mapeamentos apareceram em versões anteriores do Android, mas eram inconsistentes com o HID ou usavam códigos de chave não padrão do Linux. Eles não são mais compatíveis.
LKC | Nome do código de chave do Linux | Versão | AKC | Nome do código de chave do Android | Observações |
---|---|---|---|---|---|
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 |
Observações
-
O código de chave do Android associado a chaves alfanuméricas e simbólicas comuns pode variar de acordo com o layout e o idioma do teclado. Por motivos históricos, os códigos de verificação física e os usos de HID associados às teclas de um teclado geralmente são definidos de forma posicional, embora 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 no canto superior esquerdo é identificada como Q. Em um teclado francês (AZERTY), a tecla na mesma posição é identificada como A. Apesar do rótulo, em ambos os teclados, a chave alfabética no canto superior esquerdo é referenciada usando o uso HID 0x07 0x0014, que é mapeado para o código de chave KEY_Q do Linux.
Quando o Android está configurado com um layout de teclado em inglês dos EUA, o código de tecla KEY_Q do Linux é mapeado para o código de tecla KEYCODE_Q do Android e produz os caracteres "Q" e "q". No entanto, quando o Android é configurado com um layout de teclado francês, o código de tecla KEY_Q do Linux é mapeado para o código de tecla KEYCODE_A do Android e produz os caracteres 'A' e 'a'.
O código de chave do Android normalmente reflete a interpretação da chave específica da linguagem. Portanto, um código de chave do 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
KEY_FN_*
do Linux são mapeadas para códigos de tecla mais simples, mas são enviadas com o bit de metaestadoMETA_FUNCTION
definido como verdadeiro. -
Antes do Android Ice Cream Sandwich 4.0, o layout de teclas padrão continha mapeamentos para alguns códigos de teclas extras que não eram definidos nos cabeçalhos do kernel do Linux. Esses mapeamentos foram removidos porque esses códigos de chaves indefinidos foram atribuídos a significados diferentes em versões mais recentes do kernel do Linux.
Fontes
- Tabelas de uso de HID USB v1.12
- Kernel do Linux 2.6.39: include/linux/input.h, drivers/hid/hid-input.c
- Android ICS: qwerty.kl, Generic.kl, KeyEvent.java