Dispositivi con tastiera

Android supporta una serie di dispositivi con tastiera, tra cui tastiere con funzioni speciali (controlli del volume e dell'alimentazione), tastiere QWERTY compatte integrate e tastiere esterne con funzionalità complete come quelle dei PC.

Questo documento descrive solo le tastiere fisiche. Per informazioni sulle tastiere virtuali (editor di metodi di immissione), consulta l'SDK Android.

Classificazione della tastiera

Un dispositivo di input viene classificato come tastiera se è soddisfatta una delle seguenti condizioni:

  • Il dispositivo di input segnala la presenza di eventuali codici tasti Linux utilizzati sulle tastiere, tra cui 0 e 0xff o KEY_OK e KEY_MAX.

  • Il dispositivo di input segnala la presenza di eventuali codici tasti Linux utilizzati su joystick e gamepad, inclusi BTN_0-BTN_9, BTN_TRIGGER-BTN_DEAD oBTN_A-BTN_THUMBR.

Al momento i joystick sono classificati come tastiere perché i pulsanti del joystick e del gamepad vengono registrati dagli eventi EV_KEY nello stesso modo in cui vengono registrati i tasti della tastiera. Pertanto, anche i joystick e i gamepad utilizzano file di mappatura delle chiavi per la configurazione.

Una volta classificato un dispositivo di input come tastiera, il sistema carica il file di configurazione del dispositivo di input e il layout della tastiera per la tastiera.

Il sistema tenta quindi di determinare ulteriori caratteristiche del dispositivo.

  • Se il dispositivo di input ha tasti mappati a KEYCODE_Q, il dispositivo è considerato dotato di tastiera alfanumerica (anziché numerica). La funzionalità della tastiera alfanumerica è riportata nell'oggetto della risorsa Configuration come KEYBOARD_QWERTY.

  • Se il dispositivo di input ha tasti mappati a KEYCODE_DPAD_UP, KEYCODE_DPAD_DOWN, KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHT e KEYCODE_DPAD_CENTER (tutti devono essere presenti), il dispositivo è considerato dotato di tastierino direzionale. La funzionalità del tastierino direzionale è riportata nell'oggetto della risorsa Configuration come NAVIGATION_DPAD.

  • Se il dispositivo di input ha tasti mappati a KEYCODE_BUTTON_A o ad altre tastiere correlate al gamepad, il dispositivo è considerato dotato di un gamepad.

Requisiti del driver della tastiera

  1. I driver della tastiera devono registrare solo i codici tasti per le tasti che supportano effettivamente. La registrazione di codici chiave in eccesso potrebbe confondere l'algoritmo di classificazione del dispositivo o causare il rilevamento errato da parte del sistema delle funzionalità della tastiera supportate del dispositivo.

  2. I driver della tastiera devono utilizzare EV_KEY per segnalare le pressioni dei tasti, un valore di 0 per indicare che un tasto è stato rilasciato, un valore di 1 per indicare che un tasto è stato premuto e un valore maggiore o uguale a 2 per indicare che il tasto viene ripetuto automaticamente.

  3. Android esegue la ripetizione della tastiera. La funzionalità di ripetizione automatica deve essere disabilitata nel driver.

  4. I driver della tastiera possono facoltativamente indicare il codice di scansione o di utilizzo HID inviando EV_MSC con MSC_SCANCODE e un valore che indica il codice di scansione o di utilizzo quando viene premuto il tasto. Al momento queste informazioni non vengono utilizzate da Android.

  5. I driver della tastiera devono supportare l'impostazione degli stati LED quando viene scritto EV_LED sul dispositivo. Il driver hid-input gestisce automaticamente questa operazione. Al momento della stesura di questo articolo, Android utilizza LED_CAPSLOCK, LED_SCROLLLOCK e LED_NUMLOCK. Questi LED devono essere supportati solo se la tastiera ha effettivamente le spie associate.

  6. I driver della tastiera per i tastierino incorporati (ad esempio, utilizzando una matrice GPIO) devono assicurarsi di inviare eventi EV_KEY con un valore 0 per tutte le chiavi che sono ancora premute quando il dispositivo entra in modalità di sospensione. In caso contrario, le chiavi potrebbero rimanere bloccate e ripetersi automaticamente all'infinito.

Funzionamento della tastiera

Di seguito è riportato un breve riepilogo del funzionamento della tastiera su Android.

  1. EventHub legge gli eventi non elaborati dal driver evdev e mappa i codici tasti Linux (a volte indicati come codici di scansione) in codici tasti Android utilizzando la mappa del layout dei tasti della tastiera.

  2. InputReader utilizza gli eventi non elaborati e aggiorna lo stato della metachiave. Ad esempio, se il tasto Maiusc sinistro viene premuto o rilasciato, il lettore imposta o reimposta i bit META_SHIFT_LEFT_ON e META_SHIFT_ON di conseguenza.

  3. InputReader invia una notifica a InputDispatcher sull'evento chiave.

  4. InputDispatcher chiede a WindowManagerPolicy cosa fare con l'evento chiave chiamando WindowManagerPolicy.interceptKeyBeforeQueueing. Questo metodo fa parte di un percorso critico responsabile del risveglio del dispositivo quando vengono premute determinate chiavi. EventHub mantiene efficacemente un blocco di attivazione lungo questo percorso critico per garantire che venga eseguito fino al completamento.

  5. Se al momento è in uso un InputFilter, il InputDispatcher gli offre la possibilità di consumare o trasformare la chiave. InputFilter può essere utilizzato per implementare criteri di accessibilità di basso livello a livello di sistema.

  6. InputDispatcher mette in coda la chiave per l'elaborazione nel thread di invio.

  7. Quando InputDispatcher estrae la chiave dalla coda, offre a WindowManagerPolicy una seconda possibilità di intercettare l'evento chiave chiamando WindowManagerPolicy.interceptKeyBeforeDispatching. Questo metodo gestisce le scorciatoie e altre funzioni di sistema.

  8. InputDispatcher identifica quindi il target dell'evento chiave (la finestra attiva) e attende che sia pronto. Poi, InputDispatcher invia l'evento chiave all'applicazione.

  9. All'interno dell'applicazione, l'evento chiave si propaga lungo la gerarchia delle visualizzazioni fino alla visualizzazione attiva per l'invio delle chiavi pre-IME.

  10. Se l'evento chiave non viene gestito nell'invio precedente all'IME e un IME è in uso, l'evento chiave viene inviato all'IME.

  11. Se l'evento chiave non è stato utilizzato dall'IME, si propaga lungo la gerarchia delle visualizzazioni fino alla visualizzazione attiva per l'invio di tasti standard.

  12. L'applicazione comunica a InputDispatcher se l'evento chiave è stato consumato. Se l'evento non è stato utilizzato, InputDispatcher chiama WindowManagerPolicy.dispatchUnhandledKey per applicare il comportamento "di riserva". A seconda dell'azione di riserva, il ciclo di invio degli eventi chiave potrebbe essere riavviato utilizzando un codice chiave diverso. Ad esempio, se un'applicazione non gestisce KEYCODE_ESCAPE, il sistema potrebbe inviare nuovamente l'evento chiave come KEYCODE_BACK.

Configurazione della tastiera

Il comportamento della tastiera è determinato dal layout dei tasti, dalla mappa dei caratteri dei tasti e dalla configurazione del dispositivo di input.

Per ulteriori dettagli sui file coinvolti nella configurazione della tastiera, consulta le sezioni seguenti:

Proprietà

Per le tastiere vengono utilizzate le seguenti proprietà di configurazione del dispositivo di input.

keyboard.layout

Definizione: keyboard.layout = <nome>

Specifica il nome del file di layout delle chiavi associato al dispositivo di input, esclusa l'estensione .kl. Se questo file non viene trovato, il sistema di immissione utilizzerà il layout predefinito delle chiavi.

Gli spazi nel nome vengono convertiti in trattini bassi durante la ricerca.

Per ulteriori dettagli, consulta la documentazione del file di layout delle chiavi.

keyboard.characterMap

Definizione: keyboard.characterMap = <nome>

Specifica il nome del file della mappa dei caratteri della tastiera associato al dispositivo di input, esclusa l'estensione .kcm. Se questo file non viene trovato, il sistema di immissione utilizzerà la mappa dei caratteri della chiave predefinita.

Gli spazi nel nome vengono convertiti in trattini bassi durante la ricerca.

Per ulteriori dettagli, consulta la documentazione del file della mappa dei caratteri principali.

keyboard.orientationAware

Definizione: keyboard.orientationAware = 0 | 1

Specifica se la tastiera deve reagire alle modifiche dell'orientamento del display.

  • Se il valore è 1, i tasti del tastierino direzionale vengono ruotati quando cambia l'orientamento del display associato.

  • Se il valore è 0, la tastiera è immune alle modifiche dell'orientamento del display.

Il valore predefinito è 0.

La rilevamento dell'orientamento viene utilizzato per supportare la rotazione dei tasti del tastierino direzionale, come sul Motorola Droid. Ad esempio, quando il dispositivo viene ruotato in senso orario di 90 gradi rispetto al suo orientamento naturale, KEYCODE_DPAD_UP viene riassegnato per produrre KEYCODE_DPAD_RIGHT poiché il tasto "su" finisce per indicare "destra" quando il dispositivo viene tenuto in quell'orientamento.

keyboard.builtIn

Definizione: keyboard.builtIn = 0 | 1

Specifica se la tastiera è integrata (collegata fisicamente).

Il valore predefinito è 1 se il nome del dispositivo termina con -keypad, 0 in caso contrario.

Alla tastiera integrata viene sempre assegnato un ID dispositivo 0. Alle altre tastiere che non sono integrate vengono assegnati ID dispositivo univoci diversi da zero.

L'utilizzo di un ID 0 per la tastiera integrata è importante per mantenere la compatibilità con il campo KeyCharacterMap.BUILT_IN_KEYBOARD, che specifica l'ID della tastiera integrata e ha un valore 0. Questo campo è stato ritirato nell'API, ma le applicazioni precedenti potrebbero ancora utilizzarlo.

Una tastiera con funzioni speciali (la cui mappa dei caratteri della tastiera specifica un tipo di SPECIAL_FUNCTION) non verrà mai registrata come tastiera integrata, indipendentemente dall'impostazione di questa proprietà. Questo perché una tastiera con funzioni speciali non è progettata per essere utilizzata per la digitazione generica.

Configurazioni di esempio

# 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

Note sulla compatibilità

Prima di Honeycomb, il mapper dell'input della tastiera non utilizzava alcuna proprietà di configurazione. Si è presunto che tutte le tastiere fossero fisicamente collegate e sensibili all'orientamento. Il layout dei tasti e la mappa dei caratteri dei tasti predefiniti erano denominati qwerty anziché Generic. Anche il formato della mappa dei caratteri della tastiera era molto diverso e il framework non supportava tastiere complete o esterne in stile PC.

Quando esegui l'upgrade dei dispositivi a Honeycomb, assicurati di creare o aggiornare i file di configurazione e mappa delle chiavi necessari.

Utilizzi HID, codici chiave Linux e codici chiave Android

Il sistema fa riferimento alle chiavi utilizzando diversi identificatori, a seconda del livello di astrazione.

Per i dispositivi HID, a ogni chiave è associato un utilizzo HID. Il driver hid-input di Linux e i relativi driver HID specifici per il fornitore e il dispositivo sono responsabili dell'analisi dei report HID e della mappatura degli utilizzi HID ai codici chiave di Linux.

Quando Android legge gli eventi EV_KEY dal kernel Linux, traduce ogni codice chiave Linux nel codice chiave Android corrispondente in base al file di layout della chiave del dispositivo.

Quando l'evento chiave viene inviato a un'applicazione, l'istanza android.view.KeyEvent segnala il codice chiave Linux come valore di getScanCode() e il codice chiave Android come valore di getKeyCode(). Ai fini del framework, è importante solo il valore di getKeyCode().

Tieni presente che le informazioni sull'utilizzo HID non vengono utilizzate da Android stesso o comunicate alle applicazioni.

Tabelle di codice

Le seguenti tabelle mostrano la relazione tra gli utilizzi HID, i codici tasti Linux e i codici tasti Android.

La colonna LKC specifica il codice chiave Linux in esadecimale.

La colonna AKC specifica il codice chiave Android in esadecimale.

La colonna Note si riferisce alle note pubblicate dopo la tabella.

La colonna Versione specifica la prima versione della piattaforma Android che ha incluso questa chiave nella mappa delle chiavi predefinite. Vengono visualizzate più righe nei casi in cui la mappa dei tasti predefinita è cambiata tra le versioni. La versione più vecchia indicata è 1.6.

  • In Gingerbread (2.3) e nelle release precedenti, la mappa delle chiavi predefinita era qwerty.kl. Questa mappa di tasti è stata progettata per essere utilizzata solo con l'emulatore Android e non per supportare tastiere esterne arbitrarie. Tuttavia, alcuni OEM hanno aggiunto alla piattaforma il supporto della tastiera Bluetooth e si sono affidati a qwerty.kl per fornire le mappature necessarie della tastiera. Di conseguenza, queste mappature meno recenti potrebbero essere di interesse per gli OEM che sviluppano periferiche per questi dispositivi specifici. Tieni presente che le mappature sono sostanzialmente diverse da quelle attuali, in particolare per quanto riguarda il trattamento della chiave HOME. È consigliabile sviluppare tutte le nuove periferiche in base alla mappatura delle tasti Honeycomb o a quelle più recenti (ad es. HID standard).

  • A partire da Honeycomb (3.0), la mappa dei tasti predefinita è Generic.kl. Questa mappa di tasti è stata progettata per supportare tastiere complete in stile PC. La maggior parte delle funzionalità delle tastiere HID standard dovrebbe funzionare subito.

La mappatura del codice chiave può variare in base alle versioni del kernel Linux e di Android. Quando è noto che sono state apportate modifiche alle mappe delle chiavi predefinite di Android, queste vengono indicate nella colonna della versione.

I driver HID e le mappe dei tasti specifici del dispositivo potrebbero applicare mappature diverse da quelle indicate qui.

Pagina della tastiera e del tastierino HID (0x07)

Utilizzo HID Nome dell'utilizzo HID LKC Nome in codice della chiave Linux Versione AKC Nome del codice chiave Android Note
0x07 0x0001 Ripristino dell'errore della tastiera
0x07 0x0002 Tastiera POST non riuscita
0x07 0x0003 Errore tastiera non definito
0x07 0x0004 Tastiera a e A 0x001e KEY_A 1,6 0x001d KEYCODE_A 1
0x07 0x0005 Tastiera b e B 0x0030 KEY_B 1,6 0x001e KEYCODE_B 1
0x07 0x0006 Tasti C e c della tastiera 0x002e KEY_C 1,6 0x001f KEYCODE_C 1
0x07 0x0007 Tasti d e D della tastiera 0x0020 KEY_D 1,6 0x0020 KEYCODE_D 1
0x07 0x0008 Tasti e e della tastiera 0x0012 KEY_E 1,6 0x0021 KEYCODE_E 1
0x07 0x0009 Tastiera F e f 0x0021 KEY_F 1,6 0x0022 KEYCODE_F 1
0x07 0x000a Tasti g e G della tastiera 0x0022 KEY_G 1,6 0x0023 KEYCODE_G 1
0x07 0x000b Tasti h e H della tastiera 0x0023 KEY_H 1,6 0x0024 KEYCODE_H 1
0x07 0x000c Tastiera i e I 0x0017 KEY_I 1,6 0x0025 KEYCODE_I 1
0x07 0x000d J e j della tastiera 0x0024 KEY_J 1,6 0x0026 KEYCODE_J 1
0x07 0x000e Tasti k e K della tastiera 0x0025 KEY_K 1,6 0x0027 KEYCODE_K 1
0x07 0x000f L e L della tastiera 0x0026 KEY_L 1,6 0x0028 KEYCODE_L 1
0x07 0x0010 Tastiera m e M 0x0032 KEY_M 1,6 0x0029 KEYCODE_M 1
0x07 0x0011 Tasti n e N 0x0031 KEY_N 1,6 0x002a KEYCODE_N 1
0x07 0x0012 Lettere o e O della tastiera 0x0018 KEY_O 1,6 0x002b KEYCODE_O 1
0x07 0x0013 Tasti p e P della tastiera 0x0019 KEY_P 1,6 0x002c KEYCODE_P 1
0x07 0x0014 Tasti q e Q della tastiera 0x0010 KEY_Q 1,6 0x002d KEYCODE_Q 1
0x07 0x0015 Tasti r e R 0x0013 KEY_R 1,6 0x002e KEYCODE_R 1
0x07 0x0016 Tasti S e S sulla tastiera 0x001f KEY_S 1,6 0x002f KEYCODE_S 1
0x07 0x0017 Tasti T e t della tastiera 0x0014 KEY_T 1,6 0x0030 KEYCODE_T 1
0x07 0x0018 Lettere u e U della tastiera 0x0016 KEY_U 1,6 0x0031 KEYCODE_U 1
0x07 0x0019 V e V della tastiera 0x002f KEY_V 1,6 0x0032 KEYCODE_V 1
0x07 0x001a Tasti W e w della tastiera 0x0011 KEY_W 1,6 0x0033 KEYCODE_W 1
0x07 0x001b Tasti X e X della tastiera 0x002d KEY_X 1,6 0x0034 KEYCODE_X 1
0x07 0x001c Tasti Y e y della tastiera 0x0015 KEY_Y 1,6 0x0035 KEYCODE_Y 1
0x07 0x001d Tasti Z e z della tastiera 0x002c KEY_Z 1,6 0x0036 KEYCODE_Z 1
0x07 0x001e Tastiera 1 e ! 0x0002 KEY_1 1,6 0x0008 KEYCODE_1 1
0x07 0x001f Tastiera 2 e @ 0x0003 KEY_2 1,6 0x0009 KEYCODE_2 1
0x07 0x0020 Tastiera 3 e # 0x0004 KEY_3 1,6 0x000a KEYCODE_3 1
0x07 0x0021 Tastiera 4 e $ 0x0005 KEY_4 1,6 0x000b KEYCODE_4 1
0x07 0x0022 Tastiera 5 e % 0x0006 KEY_5 1,6 0x000c KEYCODE_5 1
0x07 0x0023 Tastiera 6 e ^ 0x0007 KEY_6 1,6 0x000d KEYCODE_6 1
0x07 0x0024 Tastiera 7 e & 0x0008 KEY_7 1,6 0x000e KEYCODE_7 1
0x07 0x0025 Tastiera 8 e * 0x0009 KEY_8 1,6 0x000f KEYCODE_8 1
0x07 0x0026 Tastiera 9 e ( 0x000a KEY_9 1,6 0x0010 KEYCODE_9 1
0x07 0x0027 Tastiera 0 e ) 0x000b KEY_0 1,6 0x0007 KEYCODE_0 1
0x07 0x0028 Tasto Invio (ENTER) della tastiera 0x001c KEY_ENTER 1,6 0x0042 KEYCODE_ENTER 1
0x07 0x0029 Tasto ESC della tastiera 0x0001 KEY_ESC 3,0 0x006f KEYCODE_ESCAPE
"" "" "" "" 2.3 0x0004 KEYCODE_BACK
0x07 0x002a Tasto DELETE (Backspace) della tastiera 0x000e KEY_BACKSPACE 1,6 0x0043 KEYCODE_DEL
0x07 0x002b Tab tastiera 0x000f KEY_TAB 1,6 0x003d KEYCODE_TAB
0x07 0x002c Barra spaziatrice della tastiera 0x0039 KEY_SPACE 1,6 0x003e KEYCODE_SPACE
0x07 0x002d Tastiera - e _ 0x000c KEY_MINUS 1,6 0x0045 KEYCODE_MINUS 1
0x07 0x002e Tastiera = e + 0x000d KEY_EQUAL 1,6 0x0046 KEYCODE_EQUALS 1
0x07 0x002f Tastiera [ e { 0x001a KEY_LEFTBRACE 1,6 0x0047 KEYCODE_LEFT_BRACKET 1
0x07 0x0030 Tastiera ] e } 0x001b KEY_RIGHTBRACE 1,6 0x0048 KEYCODE_RIGHT_BRACKET 1
0x07 0x0031 Tastiera \ e | 0x002b KEY_BACKSLASH 1,6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0032 Tastiera non USA # e ~ 0x002b KEY_BACKSLASH 1,6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0033 Tastiera ; e : 0x0027 KEY_SEMICOLON 1,6 0x004a KEYCODE_SEMICOLON 1
0x07 0x0034 " e " della tastiera 0x0028 KEY_APOSTROPHE 1,6 0x004b KEYCODE_APOSTROPHE 1
0x07 0x0035 Tasti ` e ~ 0x0029 KEY_GRAVE 3,0 0x0044 KEYCODE_GRAVE 1
0x07 0x0036 Tastiera , e < 0x0033 KEY_COMMA 1,6 0x0037 KEYCODE_COMMA 1
0x07 0x0037 Tastiera . e > 0x0034 KEY_DOT 1,6 0x0038 KEYCODE_PERIOD 1
0x07 0x0038 Tastiera / e ? 0x0035 KEY_SLASH 1,6 0x004c KEYCODE_SLASH 1
0x07 0x0039 Bloc Maiusc della tastiera 0x003a KEY_CAPSLOCK 3,0 0x0073 KEYCODE_CAPS_LOCK
0x07 0x003a Tastiera F1 0x003b KEY_F1 3,0 0x0083 KEYCODE_F1
"" "" "" "" 1,6 0x0052 KEYCODE_MENU
0x07 0x003b Tastiera F2 0x003c KEY_F2 3,0 0x0084 KEYCODE_F2
"" "" "" "" 1,6 0x0002 KEYCODE_SOFT_RIGHT
0x07 0x003c Tastiera F3 0x003d KEY_F3 3,0 0x0085 KEYCODE_F3
"" "" "" "" 1,6 0x0005 KEYCODE_CALL
0x07 0x003d Tastiera F4 0x003e KEY_F4 3,0 0x0086 KEYCODE_F4
"" "" "" "" 1,6 0x0006 KEYCODE_ENDCALL
0x07 0x003e Tastiera F5 0x003f KEY_F5 3,0 0x0087 KEYCODE_F5
0x07 0x003f Tastiera F6 0x0040 KEY_F6 3,0 0x0088 KEYCODE_F6
0x07 0x0040 Tastiera F7 0x0041 KEY_F7 3,0 0x0089 KEYCODE_F7
0x07 0x0041 Tastiera F8 0x0042 KEY_F8 3,0 0x008a KEYCODE_F8
0x07 0x0042 Tastiera F9 0x0043 KEY_F9 3,0 0x008b KEYCODE_F9
0x07 0x0043 Tastiera F10 0x0044 KEY_F10 3,0 0x008c KEYCODE_F10
"" "" "" "" 2.3 0x0052 KEYCODE_MENU
0x07 0x0044 Tastiera F11 0x0057 KEY_F11 3,0 0x008d KEYCODE_F11
0x07 0x0045 Tastiera F12 0x0058 KEY_F12 3,0 0x008e KEYCODE_F12
0x07 0x0046 Stamp della tastiera 0x0063 KEY_SYSRQ 3,0 0x0078 KEYCODE_SYSRQ
0x07 0x0047 Bloc Scorr della tastiera 0x0046 KEY_SCROLLLOCK 3,0 0x0074 KEYCODE_SCROLL_LOCK
0x07 0x0048 Pausa tastiera 0x0077 KEY_PAUSE 3,0 0x0079 KEYCODE_BREAK
0x07 0x0049 Inserisci da tastiera 0x006e KEY_INSERT 3,0 0x007c KEYCODE_INSERT
0x07 0x004a Tasto Home della tastiera 0x0066 KEY_HOME 3,0 0x007a KEYCODE_MOVE_HOME
"" "" "" "" 1,6 0x0003 KEYCODE_HOME
0x07 0x004b Pagina su della tastiera 0x0068 KEY_PAGEUP 3,0 0x005c KEYCODE_PAGE_UP
0x07 0x004c Tasto Elimina in avanti sulla tastiera 0x006f KEY_DELETE 3,0 0x0070 KEYCODE_FORWARD_DEL
0x07 0x004d Fine tastiera 0x006b KEY_END 3,0 0x007b KEYCODE_MOVE_END
"" "" "" "" 1,6 0x0006 KEYCODE_ENDCALL
0x07 0x004e Pagina giù sulla tastiera 0x006d KEY_PAGEDOWN 3,0 0x005d KEYCODE_PAGE_DOWN
0x07 0x004f Freccia destra sulla tastiera 0x006a KEY_RIGHT 1,6 0x0016 KEYCODE_DPAD_RIGHT
0x07 0x0050 Freccia sinistra sulla tastiera 0x0069 KEY_LEFT 1,6 0x0015 KEYCODE_DPAD_LEFT
0x07 0x0051 Freccia giù della tastiera 0x006c KEY_DOWN 1,6 0x0014 KEYCODE_DPAD_DOWN
0x07 0x0052 Freccia su della tastiera 0x0067 KEY_UP 1,6 0x0013 KEYCODE_DPAD_UP
0x07 0x0053 Bloc Num e Cancella della tastiera 0x0045 KEY_NUMLOCK 3,0 0x008f KEYCODE_NUM_LOCK
0x07 0x0054 Tastierino / 0x0062 KEY_KPSLASH 3,0 0x009a KEYCODE_NUMPAD_DIVIDE
0x07 0x0055 Tastierino * 0x0037 KEY_KPASTERISK 3,0 0x009b KEYCODE_NUMPAD_MULTIPLY
0x07 0x0056 Tastierino - 0x004a KEY_KPMINUS 3,0 0x009c KEYCODE_NUMPAD_SUBTRACT
0x07 0x0057 Tastierino + 0x004e KEY_KPPLUS 3,0 0x009d KEYCODE_NUMPAD_ADD
0x07 0x0058 Tasto Invio del tastierino 0x0060 KEY_KPENTER 3,0 0x00a0 KEYCODE_NUMPAD_ENTER
0x07 0x0059 Tastierino 1 e Fine 0x004f KEY_KP1 3,0 0x0091 KEYCODE_NUMPAD_1
0x07 0x005a Tastierino 2 e Freccia giù 0x0050 KEY_KP2 3,0 0x0092 KEYCODE_NUMPAD_2
0x07 0x005b Tastierino 3 e Pagina giù 0x0051 KEY_KP3 3,0 0x0093 KEYCODE_NUMPAD_3
0x07 0x005c Tastierino 4 e Freccia sinistra 0x004b KEY_KP4 3,0 0x0094 KEYCODE_NUMPAD_4
0x07 0x005d Tastierino 5 0x004c KEY_KP5 3,0 0x0095 KEYCODE_NUMPAD_5
0x07 0x005e Tasto 6 e Freccia destra 0x004d KEY_KP6 3,0 0x0096 KEYCODE_NUMPAD_6
0x07 0x005f Tastierino 7 e Home 0x0047 KEY_KP7 3,0 0x0097 KEYCODE_NUMPAD_7
0x07 0x0060 Tasto 8 e Freccia su del tastierino 0x0048 KEY_KP8 3,0 0x0098 KEYCODE_NUMPAD_8
0x07 0x0061 Tastierino 9 e Pagina su 0x0049 KEY_KP9 3,0 0x0099 KEYCODE_NUMPAD_9
0x07 0x0062 Tastierino 0 e Inserisci 0x0052 KEY_KP0 3,0 0x0090 KEYCODE_NUMPAD_0
0x07 0x0063 Tastierino . ed Elimina 0x0053 KEY_KPDOT 3,0 0x009e KEYCODE_NUMPAD_DOT
0x07 0x0064 Tastiera non USA \ e | 0x0056 KEY_102ND 4.0 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0065 Applicazione tastiera 0x007f KEY_COMPOSE 3,0 0x0052 KEYCODE_MENU
"" "" "" "" 1,6 0x0054 KEYCODE_SEARCH
0x07 0x0066 Alimentazione tastiera 0x0074 KEY_POWER 1,6 0x001a KEYCODE_POWER
0x07 0x0067 Tastierino = 0x0075 KEY_KPEQUAL 3,0 0x00a1 KEYCODE_NUMPAD_EQUALS
0x07 0x0068 Tastiera F13 0x00b7 KEY_F13
0x07 0x0069 Tastiera F14 0x00b8 KEY_F14
0x07 0x006a Tastiera F15 0x00b9 KEY_F15
0x07 0x006b Tastiera F16 0x00ba KEY_F16
0x07 0x006c Tastiera F17 0x00bb KEY_F17
0x07 0x006d Tastiera F18 0x00bc KEY_F18
0x07 0x006e Tastiera F19 0x00bd KEY_F19
0x07 0x006f Tastiera F20 0x00be KEY_F20
0x07 0x0070 Tastiera F21 0x00bf KEY_F21
0x07 0x0071 Tastiera F22 0x00c0 KEY_F22
0x07 0x0072 Tastiera F23 0x00c1 KEY_F23
0x07 0x0073 Tastiera F24 0x00c2 KEY_F24
0x07 0x0074 Esecuzione tastiera 0x0086 KEY_OPEN
0x07 0x0075 Guida tastiera 0x008a KEY_HELP
0x07 0x0076 Menu tastiera 0x0082 KEY_PROPS
0x07 0x0077 Selezione tastiera 0x0084 KEY_FRONT
0x07 0x0078 Fermo tastiera 0x0080 KEY_STOP 3,0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x0079 Tastiera di nuovo 0x0081 KEY_AGAIN
0x07 0x007a Annulla tastiera 0x0083 KEY_UNDO
0x07 0x007b Taglio tastiera 0x0089 KEY_CUT
0x07 0x007c Copia da tastiera 0x0085 KEY_COPY
0x07 0x007d Incolla da tastiera 0x0087 KEY_PASTE
0x07 0x007e Ricerca da tastiera 0x0088 KEY_FIND
0x07 0x007f Disattiva audio tastiera 0x0071 KEY_MUTE 3,0 0x00a4 KEYCODE_VOLUME_MUTE
0x07 0x0080 Alza volume tastiera 0x0073 KEY_VOLUMEUP 1,6 0x0018 KEYCODE_VOLUME_UP
0x07 0x0081 Abbassa il volume della tastiera 0x0072 KEY_VOLUMEDOWN 1,6 0x0019 KEYCODE_VOLUME_DOWN
0x07 0x0082 Blocco tastiera Bloc Maiusc
0x07 0x0083 Blocco tastiera Bloc Num
0x07 0x0084 Bloc Scorr della tastiera
0x07 0x0085 Virgola del tastierino 0x0079 KEY_KPCOMMA 3,0 0x009f KEYCODE_NUMPAD_COMMA
0x07 0x0086 Segno di uguale sul tastierino
0x07 0x0087 Tastiera internazionale1 0x0059 KEY_RO
0x07 0x0088 Tastiera internazionale 2 0x005d KEY_KATAKANAHIRAGANA
0x07 0x0089 Tastiera internazionale3 0x007c KEY_YEN
0x07 0x008a Tastiera internazionale4 0x005c KEY_HENKAN
0x07 0x008b Tastiera internazionale5 0x005e KEY_MUHENKAN
0x07 0x008c Tastiera internazionale6 0x005f KEY_KPJPCOMMA
0x07 0x008d Tastiera internazionale7
0x07 0x008e Tastiera internazionale8
0x07 0x008f Tastiera internazionale9
0x07 0x0090 Tastiera LANG1 0x007a KEY_HANGEUL
0x07 0x0091 Tastiera LANG2 0x007b KEY_HANJA
0x07 0x0092 Tastiera LANG3 0x005a KEY_KATAKANA
0x07 0x0093 Tastiera LANG4 0x005b KEY_HIRAGANA
0x07 0x0094 Tastiera LANG5 0x0055 KEY_ZENKAKUHANKAKU
0x07 0x0095 Tastiera LANG6
0x07 0x0096 Tastiera LANG7
0x07 0x0097 Tastiera LANG8
0x07 0x0098 Tastiera LANG9
0x07 0x0099 Cancellazione alternativa tastiera
0x07 0x009a SysReq/Attenzione da tastiera
0x07 0x009b Annulla tastiera
0x07 0x009c Cancella tastiera
0x07 0x009d Tastiera precedente
0x07 0x009e Tasto Invio della tastiera
0x07 0x009f Separatore tastiera
0x07 0x00a0 Uscita tastiera
0x07 0x00a1 Tastiera Oper
0x07 0x00a2 Tastiera Cancella/Di nuovo
0x07 0x00a3 Tastiera CrSel/Props
0x07 0x00a4 Tastiera ExSel
0x07 0x00b0 Tastierino 00
0x07 0x00b1 Tastierino 000
0x07 0x00b2 Separatore delle migliaia
0x07 0x00b3 Separatore decimale
0x07 0x00b4 Unità di valuta
0x07 0x00b5 Sottounità di valuta
0x07 0x00b6 Tastierino ( 0x00b3 KEY_KPLEFTPAREN 3,0 0x00a2 KEYCODE_NUMPAD_LEFT_PAREN
0x07 0x00b7 Tastierino ) 0x00b4 KEY_KPRIGHTPAREN 3,0 0x00a3 KEYCODE_NUMPAD_RIGHT_PAREN
0x07 0x00b8 Keypad {
0x07 0x00b9 Keypad }
0x07 0x00ba Tastierino
0x07 0x00bb Backspace del tastierino
0x07 0x00bc Tastierino A
0x07 0x00bd Tastierino B
0x07 0x00be Tastierino C
0x07 0x00bf Tastierino D
0x07 0x00c0 Tastierino E
0x07 0x00c1 Tastierino F
0x07 0x00c2 XOR tastierino
0x07 0x00c3 Tastierino ^
0x07 0x00c4 % tastierino
0x07 0x00c5 Tastierino <
0x07 0x00c6 Tastierino >
0x07 0x00c7 Tastierino e
0x07 0x00c8 Tastiera &&
0x07 0x00c9 Tastierino |
0x07 0x00ca Tastierino ||
0x07 0x00cb Tastierino :
0x07 0x00cc Tastierino #
0x07 0x00cd Barra spaziatrice del tastierino
0x07 0x00ce Tastierino @
0x07 0x00cf Tastierino !
0x07 0x00d0 Memoria del tastierino
0x07 0x00d1 Richiamo della memoria del tastierino
0x07 0x00d2 Cancellazione della memoria del tastierino
0x07 0x00d3 Aggiunta di memoria del tastierino
0x07 0x00d4 Sottrazione della memoria del tastierino
0x07 0x00d5 Moltiplicazione della memoria del tastierino
0x07 0x00d6 Tastierino di suddivisione della memoria
0x07 0x00d7 Tastierino +/-
0x07 0x00d8 Cancella tastierino
0x07 0x00d9 Cancella inserimento tastierino
0x07 0x00da Tastierino binario
0x07 0x00db Tastierino ottale
0x07 0x00dc Tastierino decimale
0x07 0x00dd Esadecimale tastierino
0x07 0x00e0 Controllo sinistro della tastiera 0x001d KEY_LEFTCTRL 3,0 0x0071 KEYCODE_CTRL_LEFT
0x07 0x00e1 Maiusc sinistro della tastiera 0x002a KEY_LEFTSHIFT 1,6 0x003b KEYCODE_SHIFT_LEFT
0x07 0x00e2 Tasto Alt sinistro della tastiera 0x0038 KEY_LEFTALT 1,6 0x0039 KEYCODE_ALT_LEFT
0x07 0x00e3 Interfaccia utente tastiera sinistra 0x007d KEY_LEFTMETA 3,0 0x0075 KEYCODE_META_LEFT
0x07 0x00e4 Controllo destro della tastiera 0x0061 KEY_RIGHTCTRL 3,0 0x0072 KEYCODE_CTRL_RIGHT
0x07 0x00e5 Maiusc destro sulla tastiera 0x0036 KEY_RIGHTSHIFT 1,6 0x003c KEYCODE_SHIFT_RIGHT
0x07 0x00e6 Tasto Alt destro della tastiera 0x0064 KEY_RIGHTALT 1,6 0x003a KEYCODE_ALT_RIGHT
0x07 0x00e7 Interfaccia utente tastiera destra 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

Pagina generica del computer HID (0x01)

Utilizzo HID Nome dell'utilizzo HID LKC Nome in codice della chiave Linux Versione AKC Nome del codice chiave Android Note
0x01 0x0081 Spegnimento del sistema 0x0074 KEY_POWER 1,6 0x001a KEYCODE_POWER
0x01 0x0082 Sospensione del sistema 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x01 0x0083 Risveglio del sistema 0x008f KEY_WAKEUP 4.0 0x001a KEYCODE_POWER
0x01 0x0084 Menu contestuale del sistema
0x01 0x0085 Menu principale del sistema
0x01 0x0086 Menu App di sistema
0x01 0x0087 Guida del menu di sistema
0x01 0x0088 Esci dal menu di sistema
0x01 0x0089 Selezione menu di sistema
0x01 0x008a Menu di sistema a destra
0x01 0x008b Menu di sistema a sinistra
0x01 0x008c Menu di sistema su
0x01 0x008d Menu di sistema non attivo
0x01 0x008e Riavvio a freddo del sistema
0x01 0x008f Riavvio tiepido del sistema
0x01 0x00a0 Dock di sistema
0x01 0x00a1 Sganciamento del sistema
0x01 0x00a2 Configurazione del sistema
0x01 0x00a3 Interruzione del sistema
0x01 0x00a4 Interruzione del debugger di sistema
0x01 0x00a5 Interruzione dell'applicazione
0x01 0x00a6 Interruzione del debugger dell'applicazione
0x01 0x00a7 Disattivazione altoparlante di sistema
0x01 0x00a8 Ibernazione del sistema
0x01 0x00b0 Inversione display di sistema
0x01 0x00b1 Display interno del sistema
0x01 0x00b2 Display del sistema esterno
0x01 0x00b3 Display di sistema Entrambi
0x01 0x00b4 Display di sistema doppio
0x01 0x00b5 Pulsante di attivazione/disattivazione della visualizzazione del sistema interna/esterna
0x01 0x00b6 Display di sistema Scambia prim./sec.
0x01 0x00b7 Scalabilità automatica del display LCD del sistema

Pagina del consumatore HID (0x0c)

Utilizzo HID Nome dell'utilizzo HID LKC Nome in codice della chiave Linux Versione AKC Nome del codice chiave Android Note
0x0c 0x0030 Potenza
0x0c 0x0031 Reimposta
0x0c 0x0032 Sonno
0x0c 0x0033 Sospendi dopo
0x0c 0x0034 Modalità di sospensione 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x0c 0x0040 Menu 0x008b KEY_MENU 1,6 0x0052 KEYCODE_MENU
0x0c 0x0041 Scelta menu
0x0c 0x0042 Menu su
0x0c 0x0043 Menu giù
0x0c 0x0044 Menu a sinistra
0x0c 0x0045 Menu a destra 0x0181 KEY_RIGHT
0x0c 0x0046 Esc del menu
0x0c 0x0047 Aumento del valore del menu
0x0c 0x0048 Menu Valore riduzione
0x0c 0x0067 Pulsante di attivazione/disattivazione Picture in picture 0x00ab KEYCODE_WINDOW Aggiunto in aosp/1365553
0x0c 0x0069 Pulsante del menu rosso 0x18e KEY_RED 0x00b7 KEYCODE_PROG_RED Aggiunto in aosp/1388616
0x0c 0x006a Pulsante Menu verde 0x18f KEY_GREEN 0x00b8 KEYCODE_PROG_GREEN Aggiunto in aosp/1388616
0x0c 0x006b Pulsante del menu blu 0x191 KEY_BLUE 0x00ba KEYCODE_PROG_BLUE Aggiunto in aosp/1388616
0x0c 0x006c Pulsante Menu giallo 0x190 KEY_YELLOW 0x00b9 KEYCODE_PROG_YELLOW Aggiunto in aosp/1388616
0x0c 0x0081 Assegna selezione
0x0c 0x0082 Passaggio modalità
0x0c 0x0083 Richiama ultima 0x0195 KEY_LAST 0xe5 KEYCODE_LAST_CHANNEL Aggiunto in aosp/1365551
0x0c 0x0084 Accedi al canale
0x0c 0x0085 Ordina filmato
0x0c 0x0088 Computer 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 Media Select DVD 0x0185 KEY_DVD
0x0c 0x008c Media Select Telephone 0x00a9 KEY_PHONE 3,0 0x0005 KEYCODE_CALL
0x0c 0x008d Guida ai programmi Media Select 0x016a KEY_PROGRAM 3,0 0x00ac KEYCODE_GUIDE
0x0c 0x008e Media Select Video Phone 0x01a0 KEY_VIDEOPHONE
0x0c 0x008f Media Select Games 0x01a1 KEY_GAMES
0x0c 0x0090 Messaggi di selezione dei contenuti multimediali 0x018c KEY_MEMO
0x0c 0x0091 CD Media Select 0x017f KEY_CD
0x0c 0x0092 Media Select VCR 0x017b KEY_VCR
0x0c 0x0093 Sintonizzatore Media Select 0x0182 KEY_TUNER
0x0c 0x0094 Esci 0x00ae KEY_EXIT
0x0c 0x0095 Guida 0x008a KEY_HELP
0x0c 0x0096 Nastro Media Select 0x0180 KEY_TAPE
0x0c 0x0097 Cavo Media Select 0x017a KEY_TV2
0x0c 0x0098 Media Select Satellite 0x017d KEY_SAT
0x0c 0x0099 Sicurezza di Media Select
0x0c 0x009a Media Select Home 0x016e KEY_PVR 3,0 0x00ad KEYCODE_DVR
0x0c 0x0061 Con sottotitoli 0x0172 KEY_SUBTITLE 0x00af KEYCODE_CAPTIONS Aggiunto in aosp/1365552
0x0c 0x009c Incremento canale 0x0192 KEY_CHANNELUP 3,0 0x00a6 KEYCODE_CHANNEL_UP
0x0c 0x009d Decremento canale 0x0193 KEY_CHANNELDOWN 3,0 0x00a7 KEYCODE_CHANNEL_DOWN
0x0c 0x009e Media Select SAP
0x0c 0x00a0 VCR Plus 0x017c KEY_VCR2
0x0c 0x00a1 Una volta
0x0c 0x00a2 Ogni giorno
0x0c 0x00a3 Settimanale
0x0c 0x00a4 Mensile
0x0c 0x00b0 Riproduci 0x00cf KEY_PLAY 3,0 0x007e KEYCODE_MEDIA_PLAY
0x0c 0x00b1 Metti in pausa 0x0077 KEY_PAUSE 3,0 0x0079 KEYCODE_BREAK
0x0c 0x00b2 Registra 0x00a7 KEY_RECORD 3,0 0x0082 KEYCODE_MEDIA_RECORD
0x0c 0x00b3 Avanti veloce 0x00d0 KEY_FASTFORWARD 3,0 0x005a KEYCODE_MEDIA_FAST_FORWARD
0x0c 0x00b4 Torna indietro 0x00a8 KEY_REWIND 3,0 0x0059 KEYCODE_MEDIA_REWIND
0x0c 0x00b5 Scansiona traccia successiva 0x00a3 KEY_NEXTSONG 3,0 0x0057 KEYCODE_MEDIA_NEXT
0x0c 0x00b6 Scansione traccia precedente 0x00a5 KEY_PREVIOUSSONG 3,0 0x0058 KEYCODE_MEDIA_PREVIOUS
0x0c 0x00b7 Interrompi 0x00a6 KEY_STOPCD 3,0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x00b8 Espelli 0x00a1 KEY_EJECTCD 3,0 0x0081 KEYCODE_MEDIA_EJECT
0x0c 0x00b9 Riproduzione casuale
0x0c 0x00ba Seleziona disco
0x0c 0x00bb Inserisci il disco
0x0c 0x00bc Ripeti 0x01b7 KEY_MEDIA_REPEAT
0x0c 0x00be Normale traccia
0x0c 0x00c0 Avanti frame
0x0c 0x00c1 Dorso del telaio
0x0c 0x00c2 Segna
0x0c 0x00c3 Segno di spunta
0x0c 0x00c4 Ripeti dal segno
0x0c 0x00c5 Segnale di ritorno
0x0c 0x00c6 Sposta in avanti il segno di ricerca
0x0c 0x00c7 Cerca Indietro
0x0c 0x00c8 Reimpostazione del contatore
0x0c 0x00c9 Contatore di programmi
0x0c 0x00ca Incremento del monitoraggio
0x0c 0x00cb Decremento del monitoraggio
0x0c 0x00cc Interrompi / Espelli
0x0c 0x00cd Riproduci/Pausa 0x00a4 KEY_PLAYPAUSE 3,0 0x0055 KEYCODE_MEDIA_PLAY_PAUSE
0x0c 0x00ce Riproduci / Salta
0x0c 0x00e2 Disattiva audio 0x0071 KEY_MUTE 3,0 0x00a4 KEYCODE_VOLUME_MUTE
0x0c 0x00e5 Bassi più intensi 0x00d1 KEY_BASSBOOST
0x0c 0x00e6 Modalità surround
0x0c 0x00e7 Volume
0x0c 0x00e8 MPX
0x0c 0x00e9 Aumento del volume 0x0073 KEY_VOLUMEUP 1,6 0x0018 KEYCODE_VOLUME_UP
0x0c 0x00ea Riduzione del volume 0x0072 KEY_VOLUMEDOWN 1,6 0x0019 KEYCODE_VOLUME_DOWN
0x0c 0x0173 Incremento audio alternativo 0x00de KEYCODE_MEDIA_AUDIO_TRACK Aggiunto in aosp/1365554
0x0c 0x0181 Configurazione del pulsante di lancio di AL. Strumento
0x0c 0x0182 Configurazione pulsante programmabile AL. 0x009c KEY_BOOKMARKS 3,0 0x00ae KEYCODE_BOOKMARK
0x0c 0x0183 Configurazione del controllo dei consumatori AL. 0x00ab KEY_CONFIG 4.0.3 0x00d1 KEYCODE_MUSIC
0x0c 0x0184 Elaboratore di testi con IA 0x01a5 KEY_WORDPROCESSOR
0x0c 0x0185 Editor di testo AL 0x01a6 KEY_EDITOR
0x0c 0x0186 Foglio di lavoro AL 0x01a7 KEY_SPREADSHEET
0x0c 0x0187 AL Graphics Editor 0x01a8 KEY_GRAPHICSEDITOR
0x0c 0x0188 App di presentazione IA 0x01a9 KEY_PRESENTATION
0x0c 0x0189 App di database AL 0x01aa KEY_DATABASE
0x0c 0x018a Lettore email AL 0x009b KEY_MAIL 1,6 0x0041 KEYCODE_ENVELOPE
0x0c 0x018b Lettore di notizie AL 0x01ab KEY_NEWS
0x0c 0x018c AL Voicemail 0x01ac KEY_VOICEMAIL
0x0c 0x018d Contatti / Rubrica AL 0x01ad KEY_ADDRESSBOOK 4.0.3 0x00cf KEYCODE_CONTACTS
0x0c 0x018e AL Calendar / Schedule 0x018d KEY_CALENDAR 4.0.3 0x00d0 KEYCODE_CALENDAR
0x0c 0x018f AL Task / Project Manager
0x0c 0x0190 AL Log / Journal / Timecard
0x0c 0x0191 AL Checkbook / Finance 0x00db KEY_FINANCE
0x0c 0x0192 Calcolatrice AL 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATOR
0x0c 0x0193 Acquisizione/riproduzione A / V con l'IA
0x0c 0x0194 Browser della macchina locale di AL 0x0090 KEY_FILE
0x0c 0x0195 Browser LAN/WAN di AL
0x0c 0x0196 Browser internet AL 0x0096 KEY_WWW 1,6 0x0040 KEYCODE_EXPLORER
0x0c 0x0197 AL Remote Networking/ISP Connect
0x0c 0x0198 AL Network Conference
0x0c 0x0199 Chat di rete AL 0x00d8 KEY_CHAT
0x0c 0x019a AL Telephony / Dialer
0x0c 0x019b AL Logon
0x0c 0x019c AL Logoff 0x01b1 KEY_LOGOFF
0x0c 0x019d Accesso / disconnessione AL
0x0c 0x019e Blocco / salvaschermo del terminale AL 0x0098 KEY_COFFEE 4.0 0x001a KEYCODE_POWER
0x0c 0x019f Pannello di controllo AL
0x0c 0x01a0 Esegui / Processore a riga di comando di AI
0x0c 0x01a1 AL Process / Task Manager
0x0c 0x01a2 Attività / applicazione di selezione AL
0x0c 0x01a3 Attività / applicazione successiva AL
0x0c 0x01a4 Attività / applicazione precedente in AL
0x0c 0x01a5 Attività / app di arresto preventivo dell'agente di apprendimento automatico.
0x0c 0x01a6 Centro assistenza integrato di AL 0x008a KEY_HELP
0x0c 0x01a7 Documenti AL 0x00eb KEY_DOCUMENTS
0x0c 0x01a8 Thesaurus di AL
0x0c 0x01a9 Dizionario arabo
0x0c 0x01aa AL Desktop
0x0c 0x01ab Controllo ortografico AL 0x01b0 KEY_SPELLCHECK
0x0c 0x01ac Controllo grammaticale di AL
0x0c 0x01ad Stato della rete wireless AL
0x0c 0x01ae Layout tastiera arabo
0x0c 0x01af Protezione antivirus AL
0x0c 0x01b0 Crittografia AL
0x0c 0x01b1 Salvaschermo AL
0x0c 0x01b2 Allarmi AL
0x0c 0x01b3 Orologio AL
0x0c 0x01b4 Browser di file AL
0x0c 0x01b5 Stato alimentazione AL
0x0c 0x01b6 Browser di immagini AL 0x00e2 KEY_MEDIA 3,0 0x004f KEYCODE_HEADSETHOOK
0x0c 0x01b7 Browser audio AL 0x00d5 KEY_SOUND 4.0.3 0x00d1 KEYCODE_MUSIC
0x0c 0x01b8 AL Movie Browser
0x0c 0x01b9 AL Digital Rights Manager
0x0c 0x01ba Portafoglio digitale dell'Alabama
0x0c 0x01bc Messaggistica istantanea AL 0x01ae KEY_MESSENGER
0x0c 0x01bd Browser di funzionalità / suggerimenti OEM AL 0x0166 KEY_INFO
0x0c 0x01be Guida per OEM AL
0x0c 0x01bf AL Online Community
0x0c 0x01c0 Browser dei contenuti di intrattenimento di AL
0x0c 0x01c1 Browser per acquisti online in Alabama
0x0c 0x01c2 Informazioni / assistenza sulla smart card AL
0x0c 0x01c3 Browser per il mercato / finanza dell'Alabama
0x0c 0x01c4 Browser di notizie aziendali personalizzato per l'Alabama
0x0c 0x01c5 Browser delle attività online di AL
0x0c 0x01c6 Ricerca AL / Browser di ricerca
0x0c 0x01c7 Lettore audio AL
0x0c 0x0201 AC New 0x00b5 KEY_NEW
0x0c 0x0202 AC Aperto 0x0086 KEY_OPEN
0x0c 0x0203 AC Close 0x00ce KEY_CLOSE
0x0c 0x0204 Uscita AC 0x00ae KEY_EXIT
0x0c 0x0205 Massimizzazione AC
0x0c 0x0206 AC Minimize
0x0c 0x0207 Risparmio energetico 0x00ea KEY_SAVE
0x0c 0x0208 Stampa AC 0x00d2 KEY_PRINT
0x0c 0x0209 Proprietà AC 0x0082 KEY_PROPS
0x0c 0x021a Annulla AC 0x0083 KEY_UNDO
0x0c 0x021b Testo AC 0x0085 KEY_COPY
0x0c 0x021c Taglio AC 0x0089 KEY_CUT
0x0c 0x021d Incolla AC 0x0087 KEY_PASTE
0x0c 0x021e AC Seleziona tutto
0x0c 0x021f Ricerca AC 0x0088 KEY_FIND
0x0c 0x0220 Trova e sostituisci AC
0x0c 0x0221 Ricerca AC 0x00d9 KEY_SEARCH 1,6 0x0054 KEYCODE_SEARCH
0x0c 0x0222 AC Vai a 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 Avanti AC 0x009f KEY_FORWARD 3,0 0x007d KEYCODE_FORWARD
0x0c 0x0226 Arresto AC 0x0080 KEY_STOP 3,0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x0227 Aggiornamento dell'AC 0x00ad KEY_REFRESH
0x0c 0x0228 Link precedente AC
0x0c 0x0229 Link AC successivo
0x0c 0x022a Preferiti AC 0x009c KEY_BOOKMARKS 3,0 0x00ae KEYCODE_BOOKMARK
0x0c 0x022b Cronologia AC
0x0c 0x022c Abbonamenti 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 Visualizzazione a schermo intero dell'AC
0x0c 0x0231 Visualizzazione normale dell'AC
0x0c 0x0232 Attiva/disattiva visualizzazione AC
0x0c 0x0233 Scorri verso l'alto 0x00b1 KEY_SCROLLUP 3,0 0x005c KEYCODE_PAGE_UP
0x0c 0x0234 AC Scorri verso il basso 0x00b2 KEY_SCROLLDOWN 3,0 0x005d KEYCODE_PAGE_DOWN
0x0c 0x0236 Panoramica AC a sinistra
0x0c 0x0237 Panoramica a destra con aria condizionata
0x0c 0x0239 AC New Window
0x0c 0x023a Riquadro orizzontale AC
0x0c 0x023b Riquadro CA verticale
0x0c 0x023c Formato AC
0x0c 0x023d Modifica AC
0x0c 0x023e AC Bold
0x0c 0x023f Corsivo AC
0x0c 0x0240 Sottolineatura AC
0x0c 0x0241 Barrato AC
0x0c 0x0242 Pedice AC
0x0c 0x0243 Apice CA
0x0c 0x0244 AC Tutte maiuscole
0x0c 0x0245 Rotazione AC
0x0c 0x0246 Ridimensionamento AC
0x0c 0x0247 Capovolgi orizzontalmente
0x0c 0x0248 Capovolgi verticale AC
0x0c 0x0249 Specchio AC orizzontale
0x0c 0x024a AC Mirror Vertical
0x0c 0x024b AC Font Select
0x0c 0x024c Colore carattere AC
0x0c 0x024d Dimensione carattere AC
0x0c 0x024e Giustifica a sinistra AC
0x0c 0x024f Giustifica al centro orizzontale - AC
0x0c 0x0250 Giustifica a destra AC
0x0c 0x0251 Blocco giustificazione orizzontale AC
0x0c 0x0252 Giustifica in alto AC
0x0c 0x0253 AC Giustifica al centro V
0x0c 0x0254 Giustifica in basso AC
0x0c 0x0255 Blocco giustificazione AC V
0x0c 0x0256 Diminuisci rientro AC
0x0c 0x0257 Aumento rientro AC
0x0c 0x0258 Elenco numerato AC
0x0c 0x0259 Numerazione riavvio AC
0x0c 0x025a Elenco puntato AC
0x0c 0x025b Promozione AC
0x0c 0x025c Demozione dell'account cliente
0x0c 0x025d AC Sì
0x0c 0x025e N. AC
0x0c 0x025f Annullamento AC 0x00df KEY_CANCEL
0x0c 0x0260 Catalogo AC
0x0c 0x0261 Acquisto / pagamento AC
0x0c 0x0262 AC Aggiungi al carrello
0x0c 0x0263 Espansione AC
0x0c 0x0264 Espandi tutto AC
0x0c 0x0265 Comprimi AC
0x0c 0x0266 Comprimi tutto AC
0x0c 0x0267 Anteprima di stampa di Accesso come
0x0c 0x0268 Incolla speciale AC
0x0c 0x0269 Modalità di inserimento AC
0x0c 0x026a Eliminazione AC
0x0c 0x026b Blocco AC
0x0c 0x026c Sblocco AC
0x0c 0x026d AC Protect
0x0c 0x026e AC Unprotect
0x0c 0x026f Commento allegato AC
0x0c 0x0270 AC Delete Comment
0x0c 0x0271 Commento visualizzazione AC
0x0c 0x0272 Parola selezionata per l'AC
0x0c 0x0273 Frase selezionata AC
0x0c 0x0274 AC Select Paragraph
0x0c 0x0275 AC Seleziona colonna
0x0c 0x0276 Riga di selezione AC
0x0c 0x0277 Tabella di selezione AC
0x0c 0x0278 Oggetto di selezione AC
0x0c 0x0279 AC Redo / Repeat 0x00b6 KEY_REDO
0x0c 0x027a Ordinamento AC
0x0c 0x027b Ordina in ordine crescente
0x0c 0x027c Ordina in ordine decrescente
0x0c 0x027d Filtro AC
0x0c 0x027e Imposta orologio AC
0x0c 0x027f Orologio visualizzazione AC
0x0c 0x0280 AC Seleziona fuso orario
0x0c 0x0281 AC Modifica fusi orari
0x0c 0x0282 AC Set Alarm
0x0c 0x0283 Allarme AC Clear
0x0c 0x0284 Sveglia posticipata AC
0x0c 0x0285 Allarme di reimpostazione dell'aria condizionata
0x0c 0x0286 Sincronizza AC
0x0c 0x0287 Invio/ricezione AC
0x0c 0x0288 Invia a AC
0x0c 0x0289 Risposta AC 0x00e8 KEY_REPLY
0x0c 0x028a Rispondi a tutti AC
0x0c 0x028b Messaggio inoltrato AC 0x00e9 KEY_FORWARDMAIL
0x0c 0x028c Invio AC 0x00e7 KEY_SEND
0x0c 0x028d File allegato AC
0x0c 0x028e Caricamento AC
0x0c 0x028f Download AC (Salva destinazione come)
0x0c 0x0290 Bordi impostati AC
0x0c 0x0291 Riga di inserimento AC
0x0c 0x0292 Inserisci colonna AC
0x0c 0x0293 File di inserimento AC
0x0c 0x0294 AC Insert Picture
0x0c 0x0295 Oggetto inserisci AC
0x0c 0x0296 Simbolo di inserimento AC
0x0c 0x0297 AC Salva e chiudi
0x0c 0x0298 Ridenominazione dell'account cliente
0x0c 0x0299 AC Merge
0x0c 0x029a Suddivisione AC
0x0c 0x029b Distribuisci annunci adattabili orizzontalmente
0x0c 0x029c Distribuisci annunci adattabili verticalmente

Mappature non HID aggiuntive

Queste mappature descrivono le funzioni che non compaiono in HID, ma per le quali esistono codici di tasti Linux.

LKC Nome in codice della chiave Linux Versione AKC Nome del codice chiave Android Note
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

Chiavi legacy non supportate

Queste mappature erano presenti nelle versioni precedenti di Android, ma non erano coerenti con HID o utilizzavano codici chiave Linux non standard. Non sono più supportati.

LKC Nome in codice della chiave Linux Versione AKC Nome del codice chiave Android Note
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

Note

  1. Il codice chiave Android associato alle chiavi alfanumeriche e simboliche comuni può variare in base al layout e alla lingua della tastiera. Per motivi storici, i codici a barre fisici e gli utilizzi HID associati ai tasti di una tastiera sono spesso definiti in base alla posizione, anche se le etichette stampate su questi tasti possono variare da una lingua all'altra.

    Su una tastiera inglese (USA) (QWERTY), il tasto alfabetico in alto a sinistra è contrassegnato con la lettera Q. Su una tastiera francese (AZERTY), il tasto nella stessa posizione è contrassegnato con la lettera A. Nonostante l'etichetta, su entrambe le tastiere la chiave alfabetica in alto a sinistra viene richiamata utilizzando l'utilizzo HID 0x07 0x0014, che è mappato al codice chiave di Linux KEY_Q.

    Quando Android è configurato con un layout di tastiera inglese americano, il codice chiave di Linux KEY_Q verrà mappato al codice chiave di Android KEYCODE_Q e produrrà i caratteri "Q" e "q". Tuttavia, quando Android è configurato con un layout di tastiera francese, il codice chiave di Linux KEY_Q verrà mappato al codice chiave di Android KEYCODE_A e produrrà i caratteri "A" e "a".

    Il codice chiave Android riflette in genere l'interpretazione della chiave specifica per la lingua, pertanto è possibile utilizzare un codice chiave Android diverso per lingue diverse.

  2. 0x0c 0x022f AC Zoom è definito nell'HID come controllo lineare, ma il kernel lo mappa come chiave, il che probabilmente non è corretto.

  3. I tasti funzione Linux KEY_FN_* sono mappati a codici tasti più semplici, ma vengono inviati con il bit dello stato meta META_FUNCTION impostato su true.

  4. Prima di Android Ice Cream Sandwich 4.0, il layout dei tasti predefinito conteneva mappature per alcuni codici tasti aggiuntivi che non erano definiti nelle intestazioni del kernel Linux principali. Da allora, queste mappature sono state rimosse perché a questi codici chiave precedentemente non definiti sono stati assegnati significati diversi nelle versioni più recenti del kernel Linux.

Fonti

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