Konfigurationsdateien für Eingabegeräte

Konfigurationsdateien für Eingabegeräte (.idc-Dateien) enthalten gerätespezifische Dateien Konfigurationseigenschaften, die sich auf das Verhalten von Eingabegeräten auswirken.

Konfigurationsdateien für Eingabegeräte sind für Standard- Peripheriegeräten wie HID-Tastaturen und -Mäusen verwenden, da das standardmäßige Systemverhalten stellt in der Regel sicher, dass sie sofort einsatzfähig sind. Im Gegensatz dazu integrierte eingebettete Geräte, insbesondere Touchscreens, erfordern Konfigurationsdateien für Eingabegeräte, um ihr Verhalten anzugeben.

Begründung

Android erkennt und konfiguriert die meisten Funktionen der Eingabegeräte automatisch basierend auf den Ereignistypen und Eigenschaften, die vom zugehörigen Linux-Kernel-Eingabegerätetreiber.

Wenn ein Eingabegerät beispielsweise den Ereignistyp und die Codes EV_REL unterstützt REL_X und REL_Y sowie den Ereignistyp EV_KEY und BTN_MOUSE klassifiziert Android das Eingabegerät als Maus. Das Standardverhalten für eine Maus ist es, einen Bildschirm-Cursor einzublenden, der die Mausbewegungen verfolgt. und simuliert Berührungen beim Klicken mit der Maus. Auch wenn die Maus unterschiedlich konfiguriert werden, reicht das Standardverhalten Standard-Peripheriegeräten.

Bestimmte Klassen von Eingabegeräten sind mehrdeutiger. Zum Beispiel Multi-Touchpoint Touchscreens und Touchpads unterstützen beide den Ereignistyp und die Codes EV_ABS Mindestens ABS_MT_POSITION_X und ABS_MT_POSITION_Y. Die beabsichtigte Die Nutzungen dieser Geräte sind sehr unterschiedlich und können nicht immer eindeutig ermittelt werden. automatisch. Außerdem sind zusätzliche Informationen erforderlich, Daten zu Druck und Größe, die von Touchscreen-Geräten gemeldet werden. Touchgeräte, insbesondere bei integrierten Touchscreens. Meist werden IDC-Dateien benötigt.

Standort

Die Konfigurationsdateien für die Eingabegeräte sind nach USB-Anbieter, Produkt (und optional Version)-ID oder anhand des Eingabegerätenamens eingeben.

Die folgenden Pfade werden der Reihe nach verwendet.

  • /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

Beim Erstellen eines Dateipfads, der den Gerätenamen enthält, werden alle Zeichen in Gerätenamen außer '0'-'9', 'a'-'z', 'A'-'Z', '-' oder '_' durch "_" ersetzt werden.

Syntax

Eine Konfigurationsdatei für das Eingabegerät ist eine Nur-Text-Datei, die aus folgenden Eigenschaften besteht: Aufgaben und Kommentare.

Properties

Property-Zuweisungen bestehen jeweils aus einem Attributnamen, einem =, einem Attributwert und einer neuen Zeile. Beispiel:

property = value

Property-Namen sind keine leeren literalen Text-IDs. Sie dürfen keine Leerzeichen. Jede Komponente des Eingabesystems definiert eine Reihe von Eigenschaften. die zur Konfiguration der Funktion verwendet werden.

Attributwerte sind nicht leere Stringliterale, Ganzzahlen oder Gleitkommazahlen. Sie dürfen weder Leerzeichen noch die reservierten Zeichen \ oder " enthalten.

Bei Attributnamen und -werten wird zwischen Groß- und Kleinschreibung unterschieden.

Kommentare

Kommentarzeilen beginnen mit "#" bis zum Zeilenende. Beispiel:

# A comment!

Leerzeilen werden ignoriert.

Beispiel

# 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...

Allgemeine Eigenschaften

Die folgende Eigenschaft ist für alle Eingabegeräteklassen gleich.

In der Dokumentation der einzelnen Eingabegeräteklassen finden Sie Informationen zu den spezielle Eigenschaften, die von jeder Klasse verwendet werden.

device.internal

Definition: device.internal = 0 | 1

Gibt an, ob das Eingabegerät eine interne integrierte Komponente und keine extern angeschlossenes (höchstwahrscheinlich ein externes) Peripheriegerät.

  • Wenn der Wert 0 ist, ist das Gerät extern.

  • Wenn der Wert 1 ist, handelt es sich um ein internes Gerät.

  • Wenn kein Wert angegeben wird, ist der Standardwert 0 für alle Geräte im USB (BUS_USB) oder Bluetooth (BUS_BLUETOOTH), andernfalls 1.

Diese Eigenschaft bestimmt die standardmäßigen Richtlinienentscheidungen in Bezug auf Wake-Ereignisse.

Interne Eingabegeräte aktivieren in der Regel nur dann den Ruhemodus des Displays, wenn dies nicht ausdrücklich die dafür in der Schlüssel-Layoutdatei oder in einer hartcodierten Richtlinienregel konfiguriert ist. Dieses Durch die Abgrenzung wird verhindert, dass das Smartphone durch Drücken von Tasten oder Berührungen aktiviert wird. wenn Sie es in Ihrer Hosentasche haben. Normalerweise werden nur eine kleine Handvoll Wake-Schlüssel definiert.

Umgekehrt wecken externe Eingabegeräte den Ruhemodus des Geräts in der Regel stärker, Es wird angenommen, dass sie während des Transports ausgeschaltet oder nicht angeschlossen sind. Beispiel: Das Drücken einer beliebigen Taste auf einer externen Tastatur ist ein guter Indikator dafür, dass die Nutzenden um zu reagieren.

Achte darauf, dass der Wert des Attributs device.internal festgelegt ist für alle internen Eingabegeräte korrekt.

Zertifizierungsstufe

Validieren Sie die Konfigurationsdateien für die Eingabegeräte unbedingt mit dem Validieren Sie Keymaps.