Konfigurationsdateien für Eingabegeräte

Konfigurationsdateien für Eingabegeräte (.idc-Dateien) enthalten gerätespezifische 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. Für integrierte Geräte, insbesondere Touchscreens, sind dagegen fast immer Konfigurationsdateien für Eingabegeräte erforderlich, 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. Standardmäßig wird bei einer Maus ein Bildschirmcursor angezeigt, der die Bewegungen der Maus verfolgt und Berührungen simuliert, wenn auf die Maus geklickt wird. Auch wenn die Maus unterschiedlich konfiguriert werden, reicht das Standardverhalten Standard-Peripheriegeräten.

Bei bestimmten Eingabegeräten ist die Zuordnung nicht immer eindeutig. 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, um die von Touchgeräten gemeldeten Druck- und Größeninformationen sinnvoll zu nutzen. 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 nach dem Namen des Eingabegeräts.

Die folgenden Pfade werden der Reihe nach verwendet.

  • /product/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /system_ext/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /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
  • /product/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /system_ext/usr/idc/Vendor_XXXX_Product_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
  • /product/usr/idc/device-name.idc
  • /system_ext/usr/idc/device-name.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 im Gerätenamen mit Ausnahme von „0“ bis „9“, „a“ bis „z“, „A“ bis „Z“, „-“ oder „_“ durch „_“ ersetzt.

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 Property-Namen, einem =, einem Property-Wert und einem Zeilenumbruch. 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.

Property-Werte sind nicht leere Stringliterale, Ganzzahlen oder Gleitkommazahlen. Sie dürfen keine Leerzeichen oder die reservierten Zeichen \ oder " enthalten.

Bei Attributnamen und -werten wird die Groß- und Kleinschreibung berücksichtigt.

Kommentare

Kommentarzeilen beginnen mit „#“ und gehen bis zum Ende der Zeile. Beispiel:

# A comment!

Leere Zeilen 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.

Informationen zu den speziellen Eigenschaften der einzelnen Klassen finden Sie in der Dokumentation der jeweiligen Eingabegeräteklasse.

device.internal

Definition: device.internal = 0 | 1

Gibt an, ob es sich bei dem Eingabegerät um eine interne integrierte Komponente oder um ein extern angeschlossenes (höchstwahrscheinlich abnehmbares) Peripheriegerät handelt.

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

  • Wenn der Wert 1 ist, ist das Gerät intern.

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

Mit dieser Property werden Standardrichtlinienentscheidungen für Weck-Ereignisse festgelegt.

Interne Eingabegeräte wecken das Display in der Regel nicht aus dem Ruhemodus, es sei denn, dies ist in der Schlüssellayoutdatei oder in einer hartcodierten Richtlinienregel explizit konfiguriert. Dadurch wird verhindert, dass Ihr Smartphone durch Tastendrücke und Berührungen versehentlich aktiviert wird, wenn es in der Tasche ist. Normalerweise sind nur eine kleine Handvoll Wake-Schlüssel definiert.

Externe Eingabegeräte wecken das Gerät dagegen in der Regel aggressiver, da davon ausgegangen wird, dass sie während des Transports ausgeschaltet oder nicht angeschlossen sind. Wenn beispielsweise eine beliebige Taste auf einer externen Tastatur gedrückt wird, ist das ein guter Indikator dafür, dass der Nutzer möchte, dass das Gerät aktiviert wird und reagiert.

Der Wert der Property device.internal muss für alle internen Eingabegeräte korrekt festgelegt sein.

Zertifizierungsstufe

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