Périphériques clavier

Android prend en charge une variété de claviers, notamment des claviers à fonctions spéciales (commandes de volume et d'alimentation), des claviers QWERTY intégrés compacts et des claviers externes de style PC complets.

Ce document décrit uniquement les claviers physiques. Reportez-vous au SDK Android pour plus d'informations sur les claviers logiciels (éditeurs de méthodes de saisie).

Classement du clavier

Un périphérique d'entrée est classé comme clavier si l'une des conditions suivantes est remplie :

  • Le périphérique d'entrée signale la présence de tous les codes de touches Linux utilisés sur les claviers, notamment 0 à 0xff ou KEY_OK à KEY_MAX .

  • Le périphérique d'entrée signale la présence de tous les codes de clé Linux utilisés sur les joysticks et les manettes de jeu, notamment BTN_0 à BTN_9 , BTN_TRIGGER à BTN_DEAD ou BTN_A à BTN_THUMBR .

Les joysticks sont actuellement classés comme claviers car les boutons du joystick et de la manette de jeu sont signalés par les événements EV_KEY de la même manière que les touches du clavier. Ainsi, les joysticks et les manettes de jeu utilisent également des fichiers de cartes clés pour la configuration.

Une fois qu'un périphérique d'entrée a été classé comme clavier, le système charge le fichier de configuration du périphérique d'entrée et la disposition du clavier pour le clavier.

Le système tente ensuite de déterminer des caractéristiques supplémentaires de l'appareil.

  • Si le périphérique d'entrée possède des touches mappées à KEYCODE_Q , alors le périphérique est considéré comme disposant d'un clavier alphabétique (par opposition à numérique). La fonctionnalité du clavier alphabétique est signalée dans l'objet Configuration de la ressource sous la forme KEYBOARD_QWERTY .

  • Si le périphérique d'entrée possède des touches mappées sur KEYCODE_DPAD_UP , KEYCODE_DPAD_DOWN , KEYCODE_DPAD_LEFT , KEYCODE_DPAD_RIGHT et KEYCODE_DPAD_CENTER (toutes doivent être présentes), alors le périphérique est considéré comme disposant d'un clavier directionnel. La capacité du clavier directionnel est signalée dans l'objet Configuration de la ressource sous la forme NAVIGATION_DPAD .

  • Si le périphérique d'entrée possède des touches mappées à KEYCODE_BUTTON_A ou à d'autres touches liées à la manette de jeu, alors l'appareil est considéré comme disposant d'une manette de jeu.

Exigences du pilote de clavier

  1. Les pilotes de clavier ne doivent enregistrer les codes de touches que pour les touches qu'ils prennent réellement en charge. L'enregistrement de codes de touches excédentaires peut perturber l'algorithme de classification de l'appareil ou amener le système à détecter de manière incorrecte les fonctionnalités de clavier prises en charge par l'appareil.

  2. Les pilotes de clavier doivent utiliser EV_KEY pour signaler les pressions sur une touche, en utilisant une valeur de 0 pour indiquer qu'une touche est relâchée, une valeur de 1 pour indiquer qu'une touche est enfoncée et une valeur supérieure ou égale à 2 pour indiquer que la touche est enfoncée. se répétant automatiquement.

  3. Android effectue sa propre répétition de clavier. La fonctionnalité de répétition automatique doit être désactivée dans le pilote.

  4. Les pilotes de clavier peuvent éventuellement indiquer l'utilisation du HID ou le code d'analyse de bas niveau en envoyant EV_MSC avec MSC_SCANCODE et une valeur indiquant l'utilisation ou le code d'analyse lorsque la touche est enfoncée. Ces informations ne sont actuellement pas utilisées par Android.

  5. Les pilotes de clavier doivent prendre en charge la définition des états des LED lorsque EV_LED est écrit sur le périphérique. Le pilote hid-input gère cela automatiquement. Au moment d'écrire ces lignes, Android utilise LED_CAPSLOCK , LED_SCROLLLOCK et LED_NUMLOCK . Ces LED ne doivent être prises en charge que lorsque le clavier dispose effectivement des voyants lumineux associés.

  6. Les pilotes de clavier pour les claviers intégrés (par exemple, en utilisant une matrice GPIO) doivent veiller à envoyer des événements EV_KEY avec une valeur de 0 pour toutes les touches encore enfoncées lorsque l'appareil se met en veille. Sinon, les touches pourraient rester bloquées et se répéter automatiquement pour toujours.

Fonctionnement du clavier

Ce qui suit est un bref résumé du fonctionnement du clavier sur Android.

  1. L' EventHub lit les événements bruts du pilote evdev et mappe les codes de touches Linux (parfois appelés codes de numérisation) en codes de touches Android à l'aide de la carte de disposition des touches du clavier.

  2. Le InputReader consomme les événements bruts et met à jour l’état de la clé méta. Par exemple, si la touche Maj gauche est enfoncée ou relâchée, le lecteur définira ou réinitialisera les bits META_SHIFT_LEFT_ON et META_SHIFT_ON en conséquence.

  3. Le InputReader informe le InputDispatcher de l’événement clé.

  4. Le InputDispatcher demande à WindowManagerPolicy quoi faire avec l'événement clé en appelant WindowManagerPolicy.interceptKeyBeforeQueueing . Cette méthode fait partie d'un chemin critique chargé de réveiller l'appareil lorsque certaines touches sont enfoncées. L' EventHub maintient efficacement un wakelock le long de ce chemin critique pour garantir qu'il se déroulera jusqu'à son terme.

  5. Si un InputFilter est actuellement utilisé, le InputDispatcher lui donne la possibilité de consommer ou de transformer la clé. Le InputFilter peut être utilisé pour mettre en œuvre des politiques d’accessibilité de bas niveau à l’échelle du système.

  6. Le InputDispatcher met la clé en file d'attente pour le traitement sur le thread de répartition.

  7. Lorsque InputDispatcher retire la clé de la file d'attente, il donne à WindowManagerPolicy une seconde chance d'intercepter l'événement de clé en appelant WindowManagerPolicy.interceptKeyBeforeDispatching . Cette méthode gère les raccourcis système et d’autres fonctions.

  8. Le InputDispatcher identifie ensuite la cible de l'événement clé (la fenêtre ciblée) et attend qu'elle soit prête. Ensuite, InputDispatcher transmet l’événement clé à l’application.

  9. Dans l'application, l'événement clé se propage dans la hiérarchie des vues jusqu'à la vue ciblée pour l'envoi de clés pré-IME.

  10. Si l'événement clé n'est pas géré dans la répartition pré-IME et qu'un IME est utilisé, l'événement clé est transmis à l'IME.

  11. Si l'événement clé n'a pas été consommé par l'IME, il se propage dans la hiérarchie des vues jusqu'à la vue ciblée pour la répartition des clés standard.

  12. L'application indique à InputDispatcher si l'événement clé a été consommé. Si l’événement n’a pas été consommé, InputDispatcher appelle WindowManagerPolicy.dispatchUnhandledKey pour appliquer un comportement de « repli ». En fonction de l'action de secours, le cycle de répartition des événements clés peut être redémarré à l'aide d'un code clé différent. Par exemple, si une application ne gère pas KEYCODE_ESCAPE , le système peut rediffuser l'événement clé en tant que KEYCODE_BACK à la place.

Configuration du clavier

Le comportement du clavier est déterminé par la disposition des touches du clavier, la configuration des caractères des touches et la configuration du périphérique d'entrée.

Reportez-vous aux sections suivantes pour plus de détails sur les fichiers qui participent à la configuration du clavier :

Propriétés

Les propriétés de configuration du périphérique d'entrée suivantes sont utilisées pour les claviers.

clavier

Définition : keyboard.layout = <nom>

Spécifie le nom du fichier de disposition de touches associé au périphérique d'entrée, à l'exclusion de l'extension .kl . Si ce fichier n'est pas trouvé, le système de saisie utilisera à la place la disposition des touches par défaut.

Les espaces dans le nom sont convertis en traits de soulignement lors de la recherche.

Reportez-vous à la documentation du fichier de disposition des touches pour plus de détails.

clavier.characterMap

Définition : keyboard.characterMap = <nom>

Spécifie le nom du fichier de mappage de caractères clés associé au périphérique d'entrée, à l'exclusion de l'extension .kcm . Si ce fichier n'est pas trouvé, le système d'entrée utilisera à la place la carte de caractères clés par défaut.

Les espaces dans le nom sont convertis en traits de soulignement lors de la recherche.

Reportez-vous à la documentation du fichier de mappage de caractères clés pour plus de détails.

clavier.orientationAware

Définition : keyboard.orientationAware = 0 | 1

Spécifie si le clavier doit réagir aux changements d'orientation de l'affichage.

  • Si la valeur est 1 , les touches du clavier directionnel pivotent lorsque l'orientation de l'affichage associée change.

  • Si la valeur est 0 , le clavier est immunisé contre les changements d'orientation d'affichage.

La valeur par défaut est 0 .

La connaissance de l'orientation est utilisée pour prendre en charge la rotation des touches du clavier directionnel, comme sur le Motorola Droid. Par exemple, lorsque l'appareil pivote de 90 degrés dans le sens des aiguilles d'une montre par rapport à son orientation naturelle, KEYCODE_DPAD_UP est remappé pour produire KEYCODE_DPAD_RIGHT puisque la touche « haut » finit par pointer « vers la droite » lorsque l'appareil est maintenu dans cette orientation.

clavier.builtIn

Définition : keyboard.builtIn = 0 | 1

Spécifie si le clavier est le clavier intégré (connecté physiquement).

La valeur par défaut est 1 si le nom de l'appareil se termine par -keypad , 0 sinon.

Le clavier intégré se voit toujours attribuer un identifiant de périphérique de 0 . Les autres claviers non intégrés se voient attribuer des identifiants de périphérique uniques non nuls.

L'utilisation d'un identifiant de 0 pour le clavier intégré est importante pour maintenir la compatibilité avec le champ KeyCharacterMap.BUILT_IN_KEYBOARD , qui spécifie l'identifiant du clavier intégré et a une valeur de 0 . Ce champ est obsolète dans l'API, mais des applications plus anciennes peuvent encore l'utiliser.

Un clavier à fonction spéciale (celui dont la table de caractères spécifie un type de SPECIAL_FUNCTION ) ne sera jamais enregistré en tant que clavier intégré, quel que soit le paramètre de cette propriété. En effet, un clavier à fonctions spéciales n'est, par définition, pas destiné à être utilisé pour une saisie à des fins générales.

Exemples de configuration

# 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

Remarques sur la compatibilité

Avant Honeycomb, le mappeur de saisie au clavier n'utilisait aucune propriété de configuration. Tous les claviers étaient supposés être physiquement attachés et conscients de leur orientation. La disposition des touches par défaut et la carte des caractères clés ont été nommées qwerty au lieu de Generic . Le format de la carte des caractères clés était également très différent et le framework ne prenait pas en charge les claviers complets de style PC ni les claviers externes.

Lors de la mise à niveau des appareils vers Honeycomb, assurez-vous de créer ou de mettre à jour les fichiers de configuration et de mappage de touches nécessaires.

Utilisations HID, codes clés Linux et codes clés Android

Le système fait référence aux clés en utilisant plusieurs identifiants différents, selon la couche d'abstraction.

Pour les appareils HID, chaque clé est associée à une utilisation HID. Le pilote Linux hid-input et les pilotes HID associés au fournisseur et au périphérique sont responsables de l'analyse des rapports HID et du mappage des utilisations HID aux codes clés Linux.

Lorsqu'Android lit les événements EV_KEY du noyau Linux, il traduit chaque code de clé Linux en code de clé Android correspondant en fonction du fichier de disposition de clé de l'appareil.

Lorsque l'événement clé est distribué à une application, l'instance android.view.KeyEvent signale le code clé Linux comme valeur de getScanCode() et le code clé Android comme valeur de getKeyCode() . Pour les besoins du framework, seule la valeur de getKeyCode() est importante.

Notez que les informations d'utilisation HID ne sont pas utilisées par Android lui-même ni transmises aux applications.

Tableaux de codes

Les tableaux suivants montrent comment les utilisations HID, les codes clés Linux et les codes clés Android sont liés les uns aux autres.

La colonne LKC spécifie le code de la clé Linux en hexadécimal.

La colonne AKC spécifie le code de la clé Android en hexadécimal.

La colonne Notes fait référence aux notes publiées après le tableau.

La colonne Version précise la première version de la plateforme Android à avoir inclus cette clé dans son mappage de touches par défaut. Plusieurs lignes sont affichées dans les cas où la configuration des touches par défaut a changé entre les versions. La version la plus ancienne indiquée est la 1.6.

  • Dans Gingerbread (2.3) et les versions antérieures, la configuration des touches par défaut était qwerty.kl . Cette carte de touches était uniquement destinée à être utilisée avec l'émulateur Android et n'était pas destinée à être utilisée pour prendre en charge des claviers externes arbitraires. Néanmoins, quelques constructeurs OEM ont ajouté la prise en charge du clavier Bluetooth à la plate-forme et se sont appuyés sur qwerty.kl pour fournir les mappages de clavier nécessaires. Par conséquent, ces mappages plus anciens peuvent intéresser les OEM qui construisent des périphériques pour ces appareils particuliers. A noter que les mappages sont sensiblement différents de ceux actuels, notamment en ce qui concerne le traitement de la touche HOME . Il est recommandé que tous les nouveaux périphériques soient développés selon le Honeycomb ou des cartes de touches plus récentes (c'est-à-dire HID standard).

  • Depuis Honeycomb (3.0), la configuration des touches par défaut est Generic.kl . Cette carte de touches a été conçue pour prendre en charge les claviers complets de style PC. La plupart des fonctionnalités des claviers HID standard devraient fonctionner immédiatement.

Le mappage du code clé peut varier selon les versions du noyau Linux et d'Android. Lorsque des modifications sont connues dans les mappages de touches par défaut d'Android, elles sont indiquées dans la colonne version.

Les pilotes HID et les mappages de touches spécifiques au périphérique peuvent appliquer des mappages différents de ceux indiqués ici.

Clavier HID et page du clavier (0x07)

Utilisation CACHÉE Nom d'utilisation HID LKC Nom du code clé Linux Version AKC Nom du code clé Android Remarques
0x07 0x0001 Erreur de clavier survolée
0x07 0x0002 Échec du POST du clavier
0x07 0x0003 Erreur de clavier non définie
0x07 0x0004 Clavier a et A 0x001e CLÉ_A 1.6 0x001d CODE_CLÉ_A 1
0x07 0x0005 Clavier b et B 0x0030 CLÉ_B 1.6 0x001e CODE_CLÉ_B 1
0x07 0x0006 Clavier c et C 0x002e CLÉ_C 1.6 0x001f CODECLÉ_C 1
0x07 0x0007 Clavier d et D 0x0020 CLÉ_D 1.6 0x0020 CODE_CLÉ_D 1
0x07 0x0008 Clavier e et E 0x0012 CLÉ_E 1.6 0x0021 CODE_CLÉ_E 1
0x07 0x0009 Clavier f et F 0x0021 CLÉ_F 1.6 0x0022 CODE_CLÉ_F 1
0x07 0x000a Clavier g et G 0x0022 KEY_G 1.6 0x0023 CODE_CLÉ_G 1
0x07 0x000b Clavier h et H 0x0023 CLÉ_H 1.6 0x0024 CODE_CLÉ_H 1
0x07 0x000c Clavier moi et moi 0x0017 KEY_I 1.6 0x0025 CODE_CLÉ_I 1
0x07 0x000d Clavier j et J 0x0024 CLÉ_J 1.6 0x0026 CODE_CLÉ_J 1
0x07 0x000e Clavier k et K 0x0025 KEY_K 1.6 0x0027 CODE_CLÉ_K 1
0x07 0x000f Clavier l et L 0x0026 KEY_L 1.6 0x0028 CODE_CLÉ_L 1
0x07 0x0010 Clavier m et M 0x0032 KEY_M 1.6 0x0029 CODE_CLÉ_M 1
0x07 0x0011 Clavier n et N 0x0031 KEY_N 1.6 0x002a CODE_CLÉ_N 1
0x07 0x0012 Clavier o et O 0x0018 CLÉ_O 1.6 0x002b CODE_CLÉ_O 1
0x07 0x0013 Clavier p et P 0x0019 CLÉ_P 1.6 0x002c CODE_CLÉ_P 1
0x07 0x0014 Clavier q et Q 0x0010 CLÉ_Q 1.6 0x002d CODE_CLÉ_Q 1
0x07 0x0015 Clavier r et R 0x0013 CLÉ_R 1.6 0x002e CODE_CLÉ_R 1
0x07 0x0016 Clavier s et S 0x001f CLÉS 1.6 0x002f CODE_CLÉ_S 1
0x07 0x0017 Clavier t et T 0x0014 CLÉ_T 1.6 0x0030 CODE_CLÉ_T 1
0x07 0x0018 Clavier u et U 0x0016 KEY_U 1.6 0x0031 CODE_CLÉ_U 1
0x07 0x0019 Clavier v et V 0x002f CLÉ_V 1.6 0x0032 CODE_CLÉ_V 1
0x07 0x001a Clavier w et W 0x0011 KEY_W 1.6 0x0033 CODE_CLÉ_W 1
0x07 0x001b Clavier x et X 0x002d CLÉ_X 1.6 0x0034 CODE_CLÉ_X 1
0x07 0x001c Clavier y et Y 0x0015 KEY_Y 1.6 0x0035 CODE_CLÉ_Y 1
0x07 0x001d Clavier z et Z 0x002c KEY_Z 1.6 0x0036 CODE_CLÉ_Z 1
0x07 0x001e Clavier 1 et ! 0x0002 CLÉ_1 1.6 0x0008 CODECLÉ_1 1
0x07 0x001f Clavier 2 et @ 0x0003 CLÉ_2 1.6 0x0009 CODECLÉ_2 1
0x07 0x0020 Clavier 3 et # 0x0004 CLÉ_3 1.6 0x000a CODECLÉ_3 1
0x07 0x0021 Clavier 4 et $ 0x0005 CLÉ_4 1.6 0x000b CODECLÉ_4 1
0x07 0x0022 Clavier 5 et % 0x0006 CLÉ_5 1.6 0x000c CODECLÉ_5 1
0x07 0x0023 Clavier 6 et ^ 0x0007 CLÉ_6 1.6 0x000d CODECLÉ_6 1
0x07 0x0024 Clavier 7 et & 0x0008 CLÉ_7 1.6 0x000e CODECLÉ_7 1
0x07 0x0025 Clavier 8 et * 0x0009 CLÉ_8 1.6 0x000f CODECLÉ_8 1
0x07 0x0026 Clavier 9 et ( 0x000a CLÉ_9 1.6 0x0010 CODECLÉ_9 1
0x07 0x0027 Clavier 0 et ) 0x000b CLÉ_0 1.6 0x0007 CODECLÉ_0 1
0x07 0x0028 Retour au clavier (ENTER) 0x001c KEY_ENTER 1.6 0x0042 KEYCODE_ENTER 1
0x07 0x0029 Échapper au clavier 0x0001 CLÉ_ESC 3.0 0x006f KEYCODE_ESCAPE
"" "" "" "" 2.3 0x0004 KEYCODE_BACK
0x07 0x002a Supprimer le clavier (retour arrière) 0x000e KEY_BACKSPACE 1.6 0x0043 KEYCODE_DEL
0x07 0x002b Onglet Clavier 0x000f KEY_TAB 1.6 0x003d KEYCODE_TAB
0x07 0x002c Barre d'espace du clavier 0x0039 CLÉ_ESPACE 1.6 0x003e KEYCODE_SPACE
0x07 0x002d Clavier - et _ 0x000c KEY_MINUS 1.6 0x0045 KEYCODE_MINUS 1
0x07 0x002e Clavier = et + 0x000d KEY_EQUAL 1.6 0x0046 KEYCODE_EQUALS 1
0x07 0x002f Clavier [ et { 0x001a KEY_LEFTBRACE 1.6 0x0047 KEYCODE_LEFT_BRACKET 1
0x07 0x0030 Clavier ] et } 0x001b KEY_RIGHTBRACE 1.6 0x0048 KEYCODE_RIGHT_BRACKET 1
0x07 0x0031 Clavier \ et | 0x002b KEY_BACKSLASH 1.6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0032 Clavier non américain # et ~ 0x002b KEY_BACKSLASH 1.6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0033 Clavier ; et : 0x0027 KEY_SEMICOLON 1.6 0x004a KEYCODE_SEMICOLON 1
0x07 0x0034 Clavier ' et " 0x0028 KEY_APOSTROPHE 1.6 0x004b KEYCODE_APOSTROPHE 1
0x07 0x0035 Clavier ` et ~ 0x0029 KEY_GRAVE 3.0 0x0044 KEYCODE_GRAVE 1
0x07 0x0036 Clavier , et < 0x0033 KEY_COMMA 1.6 0x0037 KEYCODE_COMMA 1
0x07 0x0037 Clavier . et > 0x0034 KEY_DOT 1.6 0x0038 KEYCODE_PERIOD 1
0x07 0x0038 Clavier / et ? 0x0035 CLÉ_SLASH 1.6 0x004c KEYCODE_SLASH 1
0x07 0x0039 Verrouillage des majuscules du clavier 0x003a KEY_CAPSLOCK 3.0 0x0073 KEYCODE_CAPS_LOCK
0x07 0x003a Clavier F1 0x003b KEY_F1 3.0 0x0083 CODECLÉ_F1
"" "" "" "" 1.6 0x0052 KEYCODE_MENU
0x07 0x003b Clavier F2 0x003c CLÉ_F2 3.0 0x0084 CODECLÉ_F2
"" "" "" "" 1.6 0x0002 KEYCODE_SOFT_RIGHT
0x07 0x003c Clavier F3 0x003d CLÉ_F3 3.0 0x0085 CODECLÉ_F3
"" "" "" "" 1.6 0x0005 KEYCODE_CALL
0x07 0x003d Clavier F4 0x003e CLÉ_F4 3.0 0x0086 CODECLÉ_F4
"" "" "" "" 1.6 0x0006 KEYCODE_ENDCALL
0x07 0x003e Clavier F5 0x003f KEY_F5 3.0 0x0087 CODE_CLÉ_F5
0x07 0x003f Clavier F6 0x0040 CLÉ_F6 3.0 0x0088 CODECLÉ_F6
0x07 0x0040 Clavier F7 0x0041 KEY_F7 3.0 0x0089 CODECLÉ_F7
0x07 0x0041 Clavier F8 0x0042 CLÉ_F8 3.0 0x008a CODE_CLÉ_F8
0x07 0x0042 Clavier F9 0x0043 KEY_F9 3.0 0x008b CODE_CLÉ_F9
0x07 0x0043 Clavier F10 0x0044 KEY_F10 3.0 0x008c CODECLÉ_F10
"" "" "" "" 2.3 0x0052 KEYCODE_MENU
0x07 0x0044 Clavier F11 0x0057 KEY_F11 3.0 0x008d CODECLÉ_F11
0x07 0x0045 Clavier F12 0x0058 KEY_F12 3.0 0x008e CODECLÉ_F12
0x07 0x0046 Écran d'impression du clavier 0x0063 KEY_SYSRQ 3.0 0x0078 KEYCODE_SYSRQ
0x07 0x0047 Verrouillage du défilement du clavier 0x0046 KEY_SCROLLLOCK 3.0 0x0074 KEYCODE_SCROLL_LOCK
0x07 0x0048 Pause du clavier 0x0077 CLÉ_PAUSE 3.0 0x0079 KEYCODE_BREAK
0x07 0x0049 Insertion du clavier 0x006e KEY_INSERT 3.0 0x007c KEYCODE_INSERT
0x07 0x004a Accueil du clavier 0x0066 KEY_HOME 3.0 0x007a KEYCODE_MOVE_HOME
"" "" "" "" 1.6 0x0003 KEYCODE_HOME
0x07 0x004b Page du clavier vers le haut 0x0068 KEY_PAGEUP 3.0 0x005c KEYCODE_PAGE_UP
0x07 0x004c Supprimer le clavier en avant 0x006f KEY_DELETE 3.0 0x0070 KEYCODE_FORWARD_DEL
0x07 0x004d Fin du clavier 0x006b KEY_END 3.0 0x007b KEYCODE_MOVE_END
"" "" "" "" 1.6 0x0006 KEYCODE_ENDCALL
0x07 0x004e Page du clavier vers le bas 0x006d KEY_PAGEDOWN 3.0 0x005d KEYCODE_PAGE_DOWN
0x07 0x004f Flèche droite du clavier 0x006a KEY_RIGHT 1.6 0x0016 KEYCODE_DPAD_RIGHT
0x07 0x0050 Flèche gauche du clavier 0x0069 KEY_LEFT 1.6 0x0015 KEYCODE_DPAD_LEFT
0x07 0x0051 Flèche vers le bas du clavier 0x006c TOUCHE BAS 1.6 0x0014 KEYCODE_DPAD_DOWN
0x07 0x0052 Flèche vers le haut du clavier 0x0067 CLÉ_UP 1.6 0x0013 KEYCODE_DPAD_UP
0x07 0x0053 Verrouillage numérique et effacement du clavier 0x0045 KEY_NUMLOCK 3.0 0x008f KEYCODE_NUM_LOCK
0x07 0x0054 Clavier / 0x0062 KEY_KPSLASH 3.0 0x009a KEYCODE_NUMPAD_DIVIDE
0x07 0x0055 Clavier * 0x0037 KEY_KPASTÉRISQUE 3.0 0x009b KEYCODE_NUMPAD_MULTIPLY
0x07 0x0056 Clavier - 0x004a KEY_KPMINUS 3.0 0x009c KEYCODE_NUMPAD_SUBTRACT
0x07 0x0057 Clavier + 0x004e KEY_KPPLUS 3.0 0x009d KEYCODE_NUMPAD_ADD
0x07 0x0058 Clavier ENTRÉE 0x0060 KEY_KPENTER 3.0 0x00a0 KEYCODE_NUMPAD_ENTER
0x07 0x0059 Clavier 1 et Fin 0x004f KEY_KP1 3.0 0x0091 KEYCODE_NUMPAD_1
0x07 0x005a Clavier 2 et flèche vers le bas 0x0050 KEY_KP2 3.0 0x0092 KEYCODE_NUMPAD_2
0x07 0x005b Clavier 3 et PageDn 0x0051 KEY_KP3 3.0 0x0093 KEYCODE_NUMPAD_3
0x07 0x005c Clavier 4 et flèche gauche 0x004b KEY_KP4 3.0 0x0094 KEYCODE_NUMPAD_4
0x07 0x005d Clavier 5 0x004c KEY_KP5 3.0 0x0095 KEYCODE_NUMPAD_5
0x07 0x005e Clavier 6 et flèche droite 0x004d KEY_KP6 3.0 0x0096 KEYCODE_NUMPAD_6
0x07 0x005f Clavier 7 et Accueil 0x0047 KEY_KP7 3.0 0x0097 KEYCODE_NUMPAD_7
0x07 0x0060 Clavier 8 et flèche vers le haut 0x0048 KEY_KP8 3.0 0x0098 KEYCODE_NUMPAD_8
0x07 0x0061 Clavier 9 et page précédente 0x0049 KEY_KP9 3.0 0x0099 KEYCODE_NUMPAD_9
0x07 0x0062 Clavier 0 et Insérer 0x0052 KEY_KP0 3.0 0x0090 KEYCODE_NUMPAD_0
0x07 0x0063 Clavier . et Supprimer 0x0053 KEY_KPDOT 3.0 0x009e KEYCODE_NUMPAD_DOT
0x07 0x0064 Clavier non américain \ et | 0x0056 KEY_102ND 4.0 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0065 Application clavier 0x007f KEY_COMPOSE 3.0 0x0052 KEYCODE_MENU
"" "" "" "" 1.6 0x0054 KEYCODE_SEARCH
0x07 0x0066 Alimentation du clavier 0x0074 KEY_POWER 1.6 0x001a KEYCODE_POWER
0x07 0x0067 Clavier = 0x0075 KEY_KPEQUAL 3.0 0x00a1 KEYCODE_NUMPAD_EQUALS
0x07 0x0068 Clavier F13 0x00b7 KEY_F13
0x07 0x0069 Clavier F14 0x00b8 KEY_F14
0x07 0x006a Clavier F15 0x00b9 KEY_F15
0x07 0x006b Clavier F16 0x00ba KEY_F16
0x07 0x006c Clavier F17 0x00bb KEY_F17
0x07 0x006d Clavier F18 0x00bc KEY_F18
0x07 0x006e Clavier F19 0x00bd KEY_F19
0x07 0x006f Clavier F20 0x00be KEY_F20
0x07 0x0070 Clavier F21 0x00bf KEY_F21
0x07 0x0071 Clavier F22 0x00c0 KEY_F22
0x07 0x0072 Clavier F23 0x00c1 KEY_F23
0x07 0x0073 Clavier F24 0x00c2 KEY_F24
0x07 0x0074 Exécution au clavier 0x0086 CLÉ_OPEN
0x07 0x0075 Aide du clavier 0x008a KEY_HELP
0x07 0x0076 Menu du clavier 0x0082 KEY_PROPS
0x07 0x0077 Sélection du clavier 0x0084 CLÉ_FRONT
0x07 0x0078 Arrêt du clavier 0x0080 KEY_STOP 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x0079 Clavier à nouveau 0x0081 KEY_AGAIN
0x07 0x007a Annuler le clavier 0x0083 KEY_UNDO
0x07 0x007b Coupe du clavier 0x0089 CLÉ_CUT
0x07 0x007c Copie du clavier 0x0085 CLÉ_COPY
0x07 0x007d Coller le clavier 0x0087 KEY_PASTE
0x07 0x007e Recherche de clavier 0x0088 CLÉ_FIND
0x07 0x007f Muet du clavier 0x0071 KEY_MUTE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x07 0x0080 Augmentation du volume du clavier 0x0073 KEY_VOLUMEUP 1.6 0x0018 KEYCODE_VOLUME_UP
0x07 0x0081 Baisser le volume du clavier 0x0072 KEY_VOLUMEDOWN 1.6 0x0019 KEYCODE_VOLUME_DOWN
0x07 0x0082 Verrouillage du clavier Verrouillage des majuscules
0x07 0x0083 Verrouillage du clavier Verrouillage numérique
0x07 0x0084 Verrouillage du clavier Verrouillage du défilement
0x07 0x0085 Virgule du clavier 0x0079 KEY_KPCOMMA 3.0 0x009f KEYCODE_NUMPAD_COMMA
0x07 0x0086 Signe égal du clavier
0x07 0x0087 Clavier International1 0x0059 KEY_RO
0x07 0x0088 Clavier International2 0x005d KEY_KATAKANAHIRAGANA
0x07 0x0089 Clavier International3 0x007c KEY_YEN
0x07 0x008a Clavier International4 0x005c KEY_HENKAN
0x07 0x008b Clavier International5 0x005e KEY_MUHENKAN
0x07 0x008c Clavier International6 0x005f KEY_KPJPCOMMA
0x07 0x008d Clavier International7
0x07 0x008e Clavier International8
0x07 0x008f Clavier International9
0x07 0x0090 Clavier LANG1 0x007a KEY_HANGEUL
0x07 0x0091 Clavier LANG2 0x007b KEY_HANJA
0x07 0x0092 Clavier LANG3 0x005a KEY_KATAKANA
0x07 0x0093 Clavier LANG4 0x005b KEY_HIRAGANA
0x07 0x0094 Clavier LANG5 0x0055 KEY_ZENKAKUHANKAKU
0x07 0x0095 Clavier LANG6
0x07 0x0096 Clavier LANG7
0x07 0x0097 Clavier LANG8
0x07 0x0098 Clavier LANG9
0x07 0x0099 Effacement alternatif du clavier
0x07 0x009a Clavier SysReq/Attention
0x07 0x009b Clavier Annuler
0x07 0x009c Effacer le clavier
0x07 0x009d Clavier avant
0x07 0x009e Retour du clavier
0x07 0x009f Séparateur de clavier
0x07 0x00a0 Sortie clavier
0x07 0x00a1 Opératrice de clavier
0x07 0x00a2 Clavier clair/à nouveau
0x07 0x00a3 Clavier CrSel/Props
0x07 0x00a4 Clavier ExSel
0x07 0x00b0 Clavier 00
0x07 0x00b1 Clavier 000
0x07 0x00b2 Séparateur de milliers
0x07 0x00b3 Séparateur décimal
0x07 0x00b4 Unité monétaire
0x07 0x00b5 Sous-unité monétaire
0x07 0x00b6 Clavier ( 0x00b3 KEY_KPLEFTPAREN 3.0 0x00a2 KEYCODE_NUMPAD_LEFT_PAREN
0x07 0x00b7 Clavier ) 0x00b4 KEY_KPRIGHTPAREN 3.0 0x00a3 KEYCODE_NUMPAD_RIGHT_PAREN
0x07 0x00b8 Clavier {
0x07 0x00b9 Clavier }
0x07 0x00ba Onglet Clavier
0x07 0x00bb Retour arrière du clavier
0x07 0x00bc Clavier A
0x07 0x00bd Clavier B
0x07 0x00be Clavier C
0x07 0x00bf Clavier D
0x07 0x00c0 Clavier E
0x07 0x00c1 Clavier F
0x07 0x00c2 Clavier XOR
0x07 0x00c3 Clavier ^
0x07 0x00c4 Clavier %
0x07 0x00c5 Clavier <
0x07 0x00c6 Clavier >
0x07 0x00c7 Clavier &
0x07 0x00c8 Clavier &&
0x07 0x00c9 Clavier |
0x07 0x00ca Clavier ||
0x07 0x00cb Clavier :
0x07 0x00cc Clavier #
0x07 0x00cd Espace du clavier
0x07 0x00ce Clavier @
0x07 0x00cf Clavier !
0x07 0x00d0 Mémoire du clavier
0x07 0x00d1 Rappel de la mémoire du clavier
0x07 0x00d2 Effacement de la mémoire du clavier
0x07 0x00d3 Ajout de mémoire du clavier
0x07 0x00d4 Soustraction de mémoire du clavier
0x07 0x00d5 Multiplication de la mémoire du clavier
0x07 0x00d6 Division de la mémoire du clavier
0x07 0x00d7 Clavier +/-
0x07 0x00d8 Effacer le clavier
0x07 0x00d9 Effacer l'entrée du clavier
0x07 0x00da Clavier binaire
0x07 0x00db Clavier Octal
0x07 0x00cc Décimal du clavier
0x07 0x00jj Clavier Hexadécimal
0x07 0x00e0 Commande gauche du clavier 0x001d KEY_LEFTCTRL 3.0 0x0071 KEYCODE_CTRL_LEFT
0x07 0x00e1 Maj gauche du clavier 0x002a KEY_LEFTSHIFT 1.6 0x003b KEYCODE_SHIFT_LEFT
0x07 0x00e2 Clavier Alt Gauche 0x0038 KEY_LEFTALT 1.6 0x0039 KEYCODE_ALT_LEFT
0x07 0x00e3 Clavier gauche GUI 0x007d KEY_LEFTMETA 3.0 0x0075 KEYCODE_META_LEFT
0x07 0x00e4 Commande du clavier à droite 0x0061 KEY_RIGHTCTRL 3.0 0x0072 KEYCODE_CTRL_RIGHT
0x07 0x00e5 Maj droite du clavier 0x0036 KEY_RIGHTSHIFT 1.6 0x003c KEYCODE_SHIFT_RIGHT
0x07 0x00e6 Clavier Alt droit 0x0064 KEY_RIGHTALT 1.6 0x003a KEYCODE_ALT_RIGHT
0x07 0x00e7 Interface graphique du clavier droit 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 CLÉ_FORWARD 3.0 0x007d KEYCODE_FORWARD
0x07 0x00f3 0x0080 KEY_STOP 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x00f4 0x0088 CLÉ_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 CLÉ_CAFÉ 4.0 0x001a KEYCODE_POWER
0x07 0x00fa 0x00annonce KEY_REFRESH
0x07 0x00fb 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATEUR

Page de bureau générique HID (0x01)

Utilisation CACHÉE Nom d'utilisation HID LKC Nom du code clé Linux Version AKC Nom du code clé Android Remarques
0x01 0x0081 Mise hors tension du système 0x0074 KEY_POWER 1.6 0x001a KEYCODE_POWER
0x01 0x0082 Veille du système 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x01 0x0083 Réveil du système 0x008f KEY_WAKEUP 4.0 0x001a KEYCODE_POWER
0x01 0x0084 Menu contextuel du système
0x01 0x0085 Menu principal du système
0x01 0x0086 Menu de l'application système
0x01 0x0087 Aide du menu système
0x01 0x0088 Quitter le menu système
0x01 0x0089 Sélection du menu système
0x01 0x008a Menu système à droite
0x01 0x008b Menu système à gauche
0x01 0x008c Menu système vers le haut
0x01 0x008d Menu système vers le bas
0x01 0x008e Redémarrage à froid du système
0x01 0x008f Redémarrage à chaud du système
0x01 0x00a0 Station d'accueil système
0x01 0x00a1 Déconnexion du système
0x01 0x00a2 Installation du système
0x01 0x00a3 Rupture du système
0x01 0x00a4 Pause du débogueur système
0x01 0x00a5 Pause d'application
0x01 0x00a6 Pause du débogueur d'application
0x01 0x00a7 Muet du haut-parleur du système
0x01 0x00a8 Mise en veille prolongée du système
0x01 0x00b0 Inversion de l'affichage du système
0x01 0x00b1 Affichage du système interne
0x01 0x00b2 Affichage du système externe
0x01 0x00b3 Affichage du système les deux
0x01 0x00b4 Affichage du système double
0x01 0x00b5 Basculement de l'affichage du système Int/Ext
0x01 0x00b6 Système Affichage Permutation Prim./Sec.
0x01 0x00b7 Affichage du système LCD Autoscale

Page consommateur HID (0x0c)

Utilisation CACHÉE Nom d'utilisation HID LKC Nom du code clé Linux Version AKC Nom du code clé Android Remarques
0x0c 0x0030 Pouvoir
0x0c 0x0031 Réinitialiser
0x0c 0x0032 Dormir
0x0c 0x0033 Dormir après
0x0c 0x0034 Mode veille 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x0c 0x0040 Menu 0x008b KEY_MENU 1.6 0x0052 KEYCODE_MENU
0x0c 0x0041 Choix de menu
0x0c 0x0042 Menu haut
0x0c 0x0043 Menu bas
0x0c 0x0044 Menu gauche
0x0c 0x0045 Menu à droite 0x0181 KEY_RIGHT
0x0c 0x0046 Menu Échapper
0x0c 0x0047 Augmentation de la valeur du menu
0x0c 0x0048 Diminution de la valeur du menu
0x0c 0x0067 Basculer l'image dans l'image 0x00ab KEYCODE_WINDOW Ajouté dans aosp/1365553
0x0c 0x0069 Bouton de menu rouge 0x18e KEY_RED 0x00b7 KEYCODE_PROG_RED Ajouté dans aosp/1388616
0x0c 0x006a Bouton de menu vert 0x18f CLÉ_VERT 0x00b8 KEYCODE_PROG_GREEN Ajouté dans aosp/1388616
0x0c 0x006b Bouton de menu bleu 0x191 KEY_BLUE 0x00ba KEYCODE_PROG_BLUE Ajouté dans aosp/1388616
0x0c 0x006c Bouton de menu jaune 0x190 CLÉ_JAUNE 0x00b9 KEYCODE_PROG_YELLOW Ajouté dans aosp/1388616
0x0c 0x0081 Attribuer la sélection
0x0c 0x0082 Étape de mode
0x0c 0x0083 Rappel du dernier 0x0195 KEY_LAST 0xe5 KEYCODE_LAST_CHANNEL Ajouté dans aosp/1365551
0x0c 0x0084 Entrer la chaîne
0x0c 0x0085 Commander un film
0x0c 0x0088 Média Sélectionner un ordinateur 0x0178 CLÉ_PC
0x0c 0x0089 Sélection des médias TV 0x0179 KEY_TV 3.0 0x00aa KEYCODE_TV
0x0c 0x008a Sélection des médias WWW 0x0096 KEY_WWW 1.6 0x0040 KEYCODE_EXPLORER
0x0c 0x008b DVD de sélection de média 0x0185 CLÉ_DVD
0x0c 0x008c Téléphone de sélection de média 0x00a9 KEY_PHONE 3.0 0x0005 KEYCODE_CALL
0x0c 0x008d Guide du programme de sélection des médias 0x016a PROGRAMME_CLÉ 3.0 0x00ac KEYCODE_GUIDE
0x0c 0x008e Sélection média Visiophone 0x01a0 KEY_VIDEOPHONE
0x0c 0x008f Jeux de sélection multimédia 0x01a1 JEUX_CLÉS
0x0c 0x0090 Messages de sélection de médias 0x018c KEY_MEMO
0x0c 0x0091 CD de sélection de média 0x017f CLÉ_CD
0x0c 0x0092 Sélection de média magnétoscope 0x017b CLÉ_VCR
0x0c 0x0093 Tuner de sélection de média 0x0182 KEY_TUNER
0x0c 0x0094 Quitter 0x00ae CLÉ_EXIT
0x0c 0x0095 Aide 0x008a KEY_HELP
0x0c 0x0096 Bande de sélection de média 0x0180 KEY_TAPE
0x0c 0x0097 Câble de sélection de média 0x017a KEY_TV2
0x0c 0x0098 Médias Sélectionner Satellite 0x017d KEY_SAT
0x0c 0x0099 Sécurité de sélection des médias
0x0c 0x009a Sélection des médias Accueil 0x016e CLÉ_PVR 3.0 0x00annonce CODE_CLÉ_DVR
0x0c 0x0061 Sous-titrage 0x0172 KEY_SUBTITLE 0x00af KEYCODE_CAPTIONS Ajouté dans aosp/1365552
0x0c 0x009c Incrément de canal 0x0192 KEY_CHANNELUP 3.0 0x00a6 KEYCODE_CHANNEL_UP
0x0c 0x009d Décrémentation de canal 0x0193 KEY_CHANNELDOWN 3.0 0x00a7 KEYCODE_CHANNEL_DOWN
0x0c 0x009e Médias Sélectionner SAP
0x0c 0x00a0 Magnétoscope Plus 0x017c KEY_VCR2
0x0c 0x00a1 Une fois
0x0c 0x00a2 Tous les jours
0x0c 0x00a3 Hebdomadaire
0x0c 0x00a4 Mensuel
0x0c 0x00b0 Jouer 0x00cf KEY_PLAY 3.0 0x007e KEYCODE_MEDIA_PLAY
0x0c 0x00b1 Pause 0x0077 CLÉ_PAUSE 3.0 0x0079 KEYCODE_BREAK
0x0c 0x00b2 Enregistrer 0x00a7 KEY_RECORD 3.0 0x0082 KEYCODE_MEDIA_RECORD
0x0c 0x00b3 Avance rapide 0x00d0 KEY_FASTFORWARD 3.0 0x005a KEYCODE_MEDIA_FAST_FORWARD
0x0c 0x00b4 Rembobiner 0x00a8 KEY_REWIND 3.0 0x0059 KEYCODE_MEDIA_REWIND
0x0c 0x00b5 Scanner la piste suivante 0x00a3 KEY_NEXTSONG 3.0 0x0057 KEYCODE_MEDIA_NEXT
0x0c 0x00b6 Scanner la piste précédente 0x00a5 KEY_PREVIOUSSONG 3.0 0x0058 KEYCODE_MEDIA_PREVIOUS
0x0c 0x00b7 Arrêt 0x00a6 KEY_STOPCD 3.0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x00b8 Éjecter 0x00a1 KEY_EJECTCD 3.0 0x0081 KEYCODE_MEDIA_EJECT
0x0c 0x00b9 Lecture aléatoire
0x0c 0x00ba Sélectionner un disque
0x0c 0x00bb Entrer le disque
0x0c 0x00bc Répéter 0x01b7 KEY_MEDIA_REPEAT
0x0c 0x00be Suivi normal
0x0c 0x00c0 Image avant
0x0c 0x00c1 Cadre arrière
0x0c 0x00c2 Marque
0x0c 0x00c3 Effacer la marque
0x0c 0x00c4 Répéter à partir de la marque
0x0c 0x00c5 Retour à la marque
0x0c 0x00c6 Marquer la recherche vers l'avant
0x0c 0x00c7 Rechercher une marque à l'envers
0x0c 0x00c8 Réinitialisation du compteur
0x0c 0x00c9 Afficher le compteur
0x0c 0x00ca Incrément de suivi
0x0c 0x00cb Décrémentation de suivi
0x0c 0x00cc Arrêter / Éjecter
0x0c 0x00cd Jouer pause 0x00a4 KEY_PLAYPAUSE 3.0 0x0055 KEYCODE_MEDIA_PLAY_PAUSE
0x0c 0x00ce Lire / Sauter
0x0c 0x00e2 Muet 0x0071 KEY_MUTE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x0c 0x00e5 Renforcement des basses 0x00d1 KEY_BASSBOOST
0x0c 0x00e6 Mode Surround
0x0c 0x00e7 Intensité
0x0c 0x00e8 MPX
0x0c 0x00e9 Incrément de volume 0x0073 KEY_VOLUMEUP 1.6 0x0018 KEYCODE_VOLUME_UP
0x0c 0x00ea Diminution du volume 0x0072 KEY_VOLUMEDOWN 1.6 0x0019 KEYCODE_VOLUME_DOWN
0x0c 0x0173 Incrément audio alternatif 0x00de KEYCODE_MEDIA_AUDIO_TRACK Ajouté dans aosp/1365554
0x0c 0x0181 Configuration du bouton de lancement AL. Outil
0x0c 0x0182 Configuration du bouton programmable AL. 0x009c KEY_BOOKMARKS 3.0 0x00ae KEYCODE_BOOKMARK
0x0c 0x0183 Configuration du contrôle du consommateur AL. 0x00ab KEY_CONFIG 4.0.3 0x00d1 KEYCODE_MUSIQUE
0x0c 0x0184 Traitement de texte AL 0x01a5 KEY_WORDPROCESSOR
0x0c 0x0185 Éditeur de texte AL 0x01a6 ÉDITEUR_CLÉ
0x0c 0x0186 Feuille de calcul AL 0x01a7 KEY_SPREADSHEET
0x0c 0x0187 Éditeur graphique AL 0x01a8 KEY_GRAPHICSEDITOR
0x0c 0x0188 Application de présentation AL 0x01a9 CLÉ_PRESENTATION
0x0c 0x0189 Application de base de données AL 0x01aa KEY_DATABASE
0x0c 0x018a Lecteur de courrier électronique AL 0x009b KEY_MAIL 1.6 0x0041 KEYCODE_ENVELOPE
0x0c 0x018b Lecteur de nouvelles AL 0x01ab KEY_NEWS
0x0c 0x018c Messagerie vocale AL 0x01ac KEY_VOICEMAIL
0x0c 0x018d Contacts AL / Carnet d'adresses 0x01annonce KEY_ADDRESSBOOK 4.0.3 0x00cf KEYCODE_CONTACTS
0x0c 0x018e Calendrier / Horaire AL 0x018d CLÉ_CALENDAR 4.0.3 0x00d0 KEYCODE_CALENDAR
0x0c 0x018f Tâche AL / Chef de projet
0x0c 0x0190 Journal AL / Journal / Carte de pointage
0x0c 0x0191 AL Chéquier / Finances 0x00db KEY_FINANCE
0x0c 0x0192 Calculatrice AL 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATEUR
0x0c 0x0193 Capture/Lecture A/V AL
0x0c 0x0194 Navigateur de machine locale AL 0x0090 FICHIER CLÉ
0x0c 0x0195 Navigateur AL LAN/WAN
0x0c 0x0196 Navigateur Internet AL 0x0096 KEY_WWW 1.6 0x0040 KEYCODE_EXPLORER
0x0c 0x0197 Réseau à distance AL/Connexion FAI
0x0c 0x0198 Conférence du réseau AL
0x0c 0x0199 Discussion en réseau AL 0x00d8 CLÉ_CHAT
0x0c 0x019a AL Téléphonie / Numéroteur
0x0c 0x019b Connexion AL
0x0c 0x019c Déconnexion AL 0x01b1 KEY_LOGOFF
0x0c 0x019d Connexion/Déconnexion AL
0x0c 0x019e Verrouillage du terminal AL / Économiseur d'écran 0x0098 CLÉ_CAFÉ 4.0 0x001a KEYCODE_POWER
0x0c 0x019f Panneau de configuration AL
0x0c 0x01a0 Processeur de ligne de commande AL / Exécuter
0x0c 0x01a1 Processus AL / Gestionnaire de tâches
0x0c 0x01a2 AL Sélectionner une tâche/une application
0x0c 0x01a3 AL Tâche/Application suivante
0x0c 0x01a4 AL Tâche/Application précédente
0x0c 0x01a5 Tâche d'arrêt préventif AL / Application.
0x0c 0x01a6 Centre d'aide intégré AL 0x008a KEY_HELP
0x0c 0x01a7 Documents AL 0x00eb DOCUMENTS_CLÉS
0x0c 0x01a8 AL Thésaurus
0x0c 0x01a9 Dictionnaire AL
0x0c 0x01aa Bureau AL
0x0c 0x01ab Vérification orthographique AL 0x01b0 KEY_SPELLCHECK
0x0c 0x01ac Vérification de la grammaire AL
0x0c 0x01ad Statut sans fil AL
0x0c 0x01ae Disposition du clavier AL
0x0c 0x01af Protection contre les virus AL
0x0c 0x01b0 Cryptage AL
0x0c 0x01b1 Écran de veille AL
0x0c 0x01b2 Alarmes AL
0x0c 0x01b3 AL Horloge
0x0c 0x01b4 Navigateur de fichiers AL
0x0c 0x01b5 État de l'alimentation AL
0x0c 0x01b6 Navigateur d’images AL 0x00e2 KEY_MEDIA 3.0 0x004f KEYCODE_HEADSETHOOK
0x0c 0x01b7 Navigateur audio AL 0x00d5 CLÉ_SON 4.0.3 0x00d1 KEYCODE_MUSIQUE
0x0c 0x01b8 Navigateur de films AL
0x0c 0x01b9 Gestionnaire des droits numériques AL
0x0c 0x01ba Portefeuille numérique AL
0x0c 0x01bc Messagerie instantanée AL 0x01ae KEY_MESSENGER
0x0c 0x01bd Navigateur de fonctionnalités/conseils AL OEM 0x0166 KEY_INFO
0x0c 0x01be AL OEM Aide
0x0c 0x01bf Communauté en ligne AL
0x0c 0x01c0 Navigateur de contenu AL Entertainment
0x0c 0x01c1 Navigateur d'achats en ligne AL
0x0c 0x01c2 Informations / Aide AL SmartCard
0x0c 0x01c3 Navigateur AL Market / Finance
0x0c 0x01c4 Navigateur de nouvelles AL Customized Corp.
0x0c 0x01c5 Navigateur d'activités en ligne AL
0x0c 0x01c6 AL Research / Navigateur de recherche
0x0c 0x01c7 Lecteur audio AL
0x0c 0x0201 CA Nouveau 0x00b5 KEY_NEW
0x0c 0x0202 CA ouvert 0x0086 CLÉ_OPEN
0x0c 0x0203 Clôture CA 0x00ce KEY_CLOSE
0x0c 0x0204 Sortie CA 0x00ae CLÉ_EXIT
0x0c 0x0205 AC Maximiser
0x0c 0x0206 AC Réduire
0x0c 0x0207 CA Enregistrer 0x00ea KEY_SAVE
0x0c 0x0208 Impression CA 0x00d2 KEY_PRINT
0x0c 0x0209 Propriétés CA 0x0082 KEY_PROPS
0x0c 0x021a AC Annuler 0x0083 KEY_UNDO
0x0c 0x021b Copie CA 0x0085 CLÉ_COPY
0x0c 0x021c Coupe AC 0x0089 CLÉ_CUT
0x0c 0x021d Pâte AC 0x0087 KEY_PASTE
0x0c 0x021e CA Tout sélectionner
0x0c 0x021f AC Trouver 0x0088 CLÉ_FIND
0x0c 0x0220 AC Rechercher et remplacer
0x0c 0x0221 Recherche CA 0x00d9 KEY_SEARCH 1.6 0x0054 KEYCODE_SEARCH
0x0c 0x0222 AC Aller à 0x0162 KEY_GOTO
0x0c 0x0223 Accueil AC 0x00ac KEY_HOMEPAGE 3.0 0x0003 KEYCODE_HOME
0x0c 0x0224 AC Retour 0x009e KEY_BACK 1.6 0x0004 KEYCODE_BACK
0x0c 0x0225 AC avant 0x009f CLÉ_FORWARD 3.0 0x007d KEYCODE_FORWARD
0x0c 0x0226 Arrêt CA 0x0080 KEY_STOP 3.0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x0227 Actualisation de la climatisation 0x00annonce KEY_REFRESH
0x0c 0x0228 AC Lien précédent
0x0c 0x0229 AC Lien suivant
0x0c 0x022a Signets AC 0x009c KEY_BOOKMARKS 3.0 0x00ae KEYCODE_BOOKMARK
0x0c 0x022b Histoire du CA
0x0c 0x022c Abonnements CA
0x0c 0x022d Zoom avant CA 0x01a2 KEY_ZOOMIN
0x0c 0x022e Zoom arrière CA 0x01a3 KEY_ZOOMOUT
0x0c 0x022f Zoom CA 0x01a4 KEY_ZOOMRESET 2
0x0c 0x0230 Affichage plein écran AC
0x0c 0x0231 Vue normale CA
0x0c 0x0232 Basculer la vue AC
0x0c 0x0233 AC Faire défiler vers le haut 0x00b1 KEY_SCROLLUP 3.0 0x005c KEYCODE_PAGE_UP
0x0c 0x0234 AC Faire défiler vers le bas 0x00b2 KEY_SCROLLDOWN 3.0 0x005d KEYCODE_PAGE_DOWN
0x0c 0x0236 Bac AC gauche
0x0c 0x0237 Bac AC à droite
0x0c 0x0239 AC Nouvelle fenêtre
0x0c 0x023a Tuile AC horizontalement
0x0c 0x023b Carrelage AC verticalement
0x0c 0x023c Format CA
0x0c 0x023d Réussit
0x0c 0x023e AC Gras
0x0c 0x023f AC Italique
0x0c 0x0240 AC Souligné
0x0c 0x0241 AC barré
0x0c 0x0242 Indice AC
0x0c 0x0243 AC exposant
0x0c 0x0244 AC toutes majuscules
0x0c 0x0245 Rotation CA
0x0c 0x0246 Redimensionnement CA
0x0c 0x0247 AC Retourner horizontalement
0x0c 0x0248 AC Flip Vertical
0x0c 0x0249 Miroir AC horizontal
0x0c 0x024a Miroir AC vertical
0x0c 0x024b Sélection de la police AC
0x0c 0x024c Couleur de la police AC
0x0c 0x024d Taille de la police AC
0x0c 0x024e AC Justifier à gauche
0x0c 0x024f AC Justifier Centre H
0x0c 0x0250 AC Justifier à droite
0x0c 0x0251 AC Justifier le bloc H
0x0c 0x0252 AC Justifier Haut
0x0c 0x0253 AC Justifier Centre V
0x0c 0x0254 AC Justifier Bas
0x0c 0x0255 AC Justifier le bloc V
0x0c 0x0256 Diminution du retrait AC
0x0c 0x0257 Augmentation du retrait AC
0x0c 0x0258 Liste numérotée AC
0x0c 0x0259 Numérotation des redémarrages CA
0x0c 0x025a Liste à puces AC
0x0c 0x025b AC Promouvoir
0x0c 0x025c CA rétrogradé
0x0c 0x025d Climatisation Oui
0x0c 0x025e CA Non
0x0c 0x025f CA Annuler 0x00df KEY_CANCEL
0x0c 0x0260 Catalogue CA
0x0c 0x0261 AC Acheter / Commander
0x0c 0x0262 CA Ajouter au panier
0x0c 0x0263 CA Développer
0x0c 0x0264 AC Tout développer
0x0c 0x0265 Effondrement du climatiseur
0x0c 0x0266 AC Réduire tout
0x0c 0x0267 Aperçu avant impression CA
0x0c 0x0268 AC Pâte Spéciale
0x0c 0x0269 Mode d'insertion CA
0x0c 0x026a CA Supprimer
0x0c 0x026b Une horloge
0x0c 0x026c Déverrouillage CA
0x0c 0x026d Protection CA
0x0c 0x026e AC Déprotéger
0x0c 0x026f AC Joindre un commentaire
0x0c 0x0270 AC Supprimer le commentaire
0x0c 0x0271 CA Voir le commentaire
0x0c 0x0272 AC Sélectionner le mot
0x0c 0x0273 AC Sélectionner la phrase
0x0c 0x0274 AC Sélectionner le paragraphe
0x0c 0x0275 Colonne de sélection CA
0x0c 0x0276 Ligne de sélection CA
0x0c 0x0277 Tableau de sélection CA
0x0c 0x0278 AC Sélectionner un objet
0x0c 0x0279 AC Rétablir / Répéter 0x00b6 KEY_REDO
0x0c 0x027a Tri CA
0x0c 0x027b AC Tri Ascendant
0x0c 0x027c AC Tri décroissant
0x0c 0x027d Filtre CA
0x0c 0x027e Horloge de réglage AC
0x0c 0x027f Horloge de vue AC
0x0c 0x0280 AC Sélectionner le fuseau horaire
0x0c 0x0281 AC Modifier les fuseaux horaires
0x0c 0x0282 Alarme de réglage AC
0x0c 0x0283 Alarme d'effacement CA
0x0c 0x0284 Alarme de répétition de climatisation
0x0c 0x0285 Alarme de réinitialisation CA
0x0c 0x0286 Synchronisation CA
0x0c 0x0287 Envoi/réception CA
0x0c 0x0288 CA Envoyer à
0x0c 0x0289 Réponse CA 0x00e8 KEY_REPLY
0x0c 0x028a AC Répondre à tous
0x0c 0x028b Message de transfert CA 0x00e9 KEY_FORWARDMAIL
0x0c 0x028c Envoi CA 0x00e7 KEY_SEND
0x0c 0x028d AC Joindre un fichier
0x0c 0x028e Téléchargement CA
0x0c 0x028f Téléchargement AC (Enregistrer la cible sous)
0x0c 0x0290 Bordures définies AC
0x0c 0x0291 Rangée d'insertion CA
0x0c 0x0292 Colonne d'insertion CA
0x0c 0x0293 Fichier d'insertion AC
0x0c 0x0294 AC Insérer une image
0x0c 0x0295 AC Insérer un objet
0x0c 0x0296 Symbole d'insertion CA
0x0c 0x0297 AC Enregistrer et fermer
0x0c 0x0298 Renommer AC
0x0c 0x0299 Fusion CA
0x0c 0x029a Répartition CA
0x0c 0x029b AC distribuer horizontalement
0x0c 0x029c CA distribué verticalement

Mappages supplémentaires non HID

Ces mappages décrivent des fonctions qui n'apparaissent pas dans HID mais pour lesquelles des codes clés Linux existent.

LKC Nom du code clé Linux Version AKC Nom du code clé Android Remarques
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 CODECLÉ_F1 3
0x01d3 KEY_FN_F2 3.0 0x0084 CODECLÉ_F2 3
0x01d4 KEY_FN_F3 3.0 0x0085 CODECLÉ_F3 3
0x01d5 KEY_FN_F4 3.0 0x0086 CODECLÉ_F4 3
0x01d6 KEY_FN_F5 3.0 0x0087 CODE_CLÉ_F5 3
0x01d7 KEY_FN_F6 3.0 0x0088 CODECLÉ_F6 3
0x01d8 KEY_FN_F7 3.0 0x0089 CODECLÉ_F7 3
0x01d9 KEY_FN_F8 3.0 0x008a CODE_CLÉ_F8 3
0x01da KEY_FN_F9 3.0 0x008b CODE_CLÉ_F9 3
0x01db KEY_FN_F10 3.0 0x008c CODECLÉ_F10 3
0x01cc KEY_FN_F11 3.0 0x008d CODECLÉ_F11 3
0x01jj KEY_FN_F12 3.0 0x008e CODECLÉ_F12 3
0x01de KEY_FN_1 3.0 0x0008 CODECLÉ_1 3
0x01df KEY_FN_2 3.0 0x0009 CODECLÉ_2 3
0x01e0 KEY_FN_D 3.0 0x0020 CODE_CLÉ_D 3
0x01e1 KEY_FN_E 3.0 0x0021 CODE_CLÉ_E 3
0x01e2 KEY_FN_F 3.0 0x0022 CODE_CLÉ_F 3
0x01e3 KEY_FN_S 3.0 0x002f CODE_CLÉ_S 3
0x01e4 KEY_FN_B 3.0 0x001e CODE_CLÉ_B 3

Clés héritées non prises en charge

Ces mappages apparaissaient dans les versions précédentes d'Android mais étaient incompatibles avec HID ou utilisaient des codes clés Linux non standard. Ils ne sont plus pris en charge.

LKC Nom du code clé Linux Version AKC Nom du code clé Android Remarques
0x00db KEY_EMAIL 1.6 0x004d CODE_CLÉ_AT 4
"" "" 4.0 4
0x00e3 KEY_STAR 1.6 0x0011 KEYCODE_STAR 4
"" "" 4.0 4
0x00e4 CLÉ_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 CLÉ_2_5 1.6 4

Remarques

  1. Le code de la clé Android associé aux touches alphanumériques et symboliques courantes peut varier en fonction de la disposition du clavier et de la langue. Pour des raisons historiques, les codes de numérisation physique et les utilisations HID associés aux touches d'un clavier sont souvent définis de manière positionnelle, même si les étiquettes imprimées sur ces touches peuvent varier d'une langue à l'autre.

    Sur un clavier anglais américain (QWERTY), la touche alphabétique supérieure gauche est étiquetée Q. Sur un clavier français (AZERTY), la touche dans la même position est étiquetée A. Malgré l'étiquette, sur les deux claviers, la touche alphabétique supérieure gauche est fait référence à l'utilisation de l'utilisation HID 0x07 0x0014 qui est mappée au code clé Linux KEY_Q.

    Lorsqu'Android est configuré avec une disposition de clavier en anglais américain, le code clé Linux KEY_Q sera mappé au code clé Android KEYCODE_Q et produira les caractères « Q » et « q ». Cependant, lorsque Android est configuré avec un clavier français, le code clé Linux KEY_Q sera mappé au code clé Android KEYCODE_A et produira les caractères « A » et « a ».

    Le code de la clé Android reflète généralement l'interprétation de la clé spécifique à la langue, de sorte qu'un code de clé Android différent peut être utilisé pour différentes langues.

  2. 0x0c 0x022f AC Zoom est défini dans le HID comme un contrôle linéaire mais le noyau le mappe comme une clé, ce qui est probablement incorrect.

  3. Les touches de fonction Linux KEY_FN_* sont mappées à des codes de touches plus simples mais sont distribuées avec le bit de méta-état META_FUNCTION défini sur true.

  4. Avant Android Ice Cream Sandwich 4.0, la disposition des touches par défaut contenait des mappages pour certains codes de touches supplémentaires qui n'étaient pas définis dans les en-têtes principaux du noyau Linux. Ces mappages ont depuis été supprimés car ces codes clés auparavant non définis se sont vu attribuer des significations différentes dans les versions plus récentes du noyau Linux.

Sources

  1. Tableaux d'utilisation USB HID v1.12
  2. Noyau Linux 2.6.39 : include/linux/input.h, drivers/hid/hid-input.c
  3. Android ICS : qwerty.kl, Generic.kl, KeyEvent.java