Fichiers de configuration du périphérique d'entrée

Les fichiers de configuration du périphérique d'entrée (.idc fichiers) contiennent des données spécifiques à l'appareil qui affectent le comportement des périphériques d'entrée.

Les fichiers de configuration du périphérique d'entrée ne sont généralement pas nécessaires pour les périphériques tels que les claviers et les souris HID, car le comportement système par défaut garantit généralement qu'elles fonctionneront immédiatement. Par ailleurs, les appareils intégrés intégrés, en particulier les écrans tactiles, presque toujours des fichiers de configuration de périphériques d'entrée pour spécifier leur comportement.

Justification

Android détecte et configure automatiquement la plupart des fonctionnalités des périphériques d'entrée en fonction des propriétés et des types d'événements indiqués dans les rapports Pilote de périphérique d'entrée du noyau Linux.

Par exemple, si un périphérique d'entrée est compatible avec le type d'événement et les codes EV_REL REL_X et REL_Y, ainsi que le type d'événement EV_KEY et BTN_MOUSE, Android classera alors le périphérique d'entrée comme une souris. Le comportement par défaut pour une souris consiste à présenter un curseur à l'écran qui suit les mouvements de la souris et simule des gestes lorsque l'utilisateur clique avec la souris. Bien que la souris puisse être configuré différemment, le comportement par défaut est généralement suffisant périphériques de souris standard.

Certaines classes de périphériques d'entrée sont plus ambiguës. Par exemple, l'écran tactile multipoint les écrans tactiles et les pavés tactiles sont compatibles avec le type d'événement et les codes EV_ABS ABS_MT_POSITION_X et ABS_MT_POSITION_Y au minimum. Cependant, l'objectif les usages de ces appareils sont très différents et ne peuvent pas toujours être déterminés automatiquement. En outre, des informations supplémentaires sont nécessaires les informations de pression et de taille transmises par les appareils tactiles. D'où les appareils tactiles, en particulier les écrans tactiles intégrés, ont généralement besoin de fichiers IDC.

Position

Les fichiers de configuration du périphérique d'entrée sont situés par fournisseur USB, produit (et (facultatif) ID ou par nom de périphérique d'entrée.

Les chemins d'accès suivants sont consultés dans l'ordre.

  • /odm/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /odm/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX.idc
  • /odm/usr/idc/device-name.idc
  • /vendor/usr/idc/device-name.idc
  • /system/usr/idc/device-name.idc
  • /data/system/devices/idc/device-name.idc

Lorsque vous créez un chemin d'accès contenant le nom de l'appareil, tous les caractères dans le nom de l'appareil autre que "0" - "9", "a - z", "A - Z" ou "-" ; ou "_" sont remplacés par "_".

Syntaxe

Un fichier de configuration de périphérique d'entrée est un fichier au format texte brut contenant devoirs et commentaires.

Propriétés

Les attributions de propriété se composent chacune d'un nom de propriété, d'un élément =, d'une valeur de propriété, et une nouvelle ligne. Comme ceci :

property = value

Les noms de propriété sont des identifiants textuels littéraux non vides. Ils ne doivent pas contenir d'espace. Chaque composant du système d'entrée définit un ensemble de propriétés utilisées pour configurer sa fonction.

Les valeurs de propriété sont des littéraux de chaîne, des entiers ou des nombres à virgule flottante non vides. Ils ne doivent pas contenir d'espaces blancs ni les caractères réservés \ ou ".

Les noms et les valeurs des propriétés sont sensibles à la casse.

Commentaires

Les lignes de commentaire commencent par le signe "#" et continuer jusqu'à la fin de la ligne. Comme ceci :

# A comment!

Les lignes vides sont ignorées.

Exemple

# This is an example of an input device configuration file.
# It might be used to describe the characteristics of a built-in touch screen.

# This is an internal device, not an external peripheral attached to the USB
# or Bluetooth bus.
device.internal = 1

# The device should behave as a touch screen, which uses the same orientation
# as the built-in display.
touch.deviceType = touchScreen
touch.orientationAware = 1

# Additional calibration properties...
# etc...

Propriétés communes

La propriété suivante est commune à toutes les classes de périphériques d'entrée.

Reportez-vous à la documentation de chaque classe de périphérique d'entrée pour en savoir plus sur la des propriétés spéciales utilisées par chaque classe.

device.internal

Définition:device.internal = 0 | 1

Indique si le périphérique d'entrée est un composant intégré interne un périphérique externe (souvent amovible).

  • Si la valeur est 0, l'appareil est externe.

  • Si la valeur est 1, l'appareil est interne.

  • Si aucune valeur n'est spécifiée, la valeur par défaut est 0 pour tous les appareils du Bus USB (BUS_USB) ou Bluetooth (BUS_BLUETOOTH), 1 dans le cas contraire

Cette propriété détermine les décisions de la règle par défaut concernant les événements de wakeups.

En général, les périphériques d'entrée internes n'activent pas l'écran de veille, sauf si explicitement configuré pour le faire dans le fichier de disposition des clés ou dans une règle de stratégie codée en dur. Ce la distinction empêche que les pressions sur les touches et les pressions réveillent votre téléphone par erreur lorsqu'il est dans votre poche. En règle générale, seule une petite partie des touches d'activation sont définies.

À l'inverse, les périphériques d'entrée externes activent généralement les appareils de manière plus agressive, car ils sont supposés être éteints ou non branchés pendant le transport. Par exemple : appuyer sur n'importe quelle touche d'un clavier externe est un bon indicateur de se réveiller et de réagir.

Il est important de s'assurer que la valeur de la propriété device.internal est définie pour tous les périphériques d'entrée internes.

Validation

Veillez à valider les fichiers de configuration de votre périphérique d'entrée à l'aide de la propriété Outil Validate Keymaps (Valider les mappages de clavier)