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 Standardperipheriegeräte wie HID-Tastaturen und -Mäuse normalerweise nicht erforderlich, da das Standardsystemverhalten normalerweise dafür sorgt, dass sie sofort funktionieren. Andererseits erfordern integrierte eingebettete Geräte, insbesondere Touchscreens, fast immer Konfigurationsdateien für Eingabegeräte, um ihr Verhalten festzulegen.

Begründung

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

Wenn ein Eingabegerät beispielsweise den Ereignistyp EV_REL und die Codes REL_X und REL_Y sowie den Ereignistyp EV_KEY und BTN_MOUSE unterstützt, klassifiziert Android das Eingabegerät als Maus. Das Standardverhalten einer Maus besteht darin, einen Bildschirmcursor anzuzeigen, der die Bewegungen der Maus verfolgt und Berührungen simuliert, wenn mit der Maus geklickt wird. Obwohl die Maus unterschiedlich konfiguriert werden kann, reicht das Standardverhalten normalerweise für Standard-Mausperipheriegeräte aus.

Bestimmte Klassen von Eingabegeräten sind mehrdeutig. Multitouch-Touchscreens und Touchpads unterstützen beispielsweise beide mindestens den Ereignistyp EV_ABS und die Codes ABS_MT_POSITION_X und ABS_MT_POSITION_Y . Allerdings sind die Verwendungszwecke dieser Geräte sehr unterschiedlich und können nicht immer automatisch ermittelt werden. Außerdem sind zusätzliche Informationen erforderlich, um die von Touch-Geräten gemeldeten Druck- und Größeninformationen zu verstehen. Daher benötigen Touch-Geräte, insbesondere integrierte Touchscreens, normalerweise IDC-Dateien.

Standort

Konfigurationsdateien für Eingabegeräte sind nach USB-Hersteller, Produkt- (und optional Versions-)ID oder nach Eingabegerätenamen sortiert.

Die folgenden Pfade werden der Reihe nach konsultiert.

  • /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 im Gerätenamen außer „0“ – „9“, „a“ – „z“, „A“ – „Z“, „-“ oder „_“ angezeigt. werden durch „_“ ersetzt.

Syntax

Eine Eingabegeräte-Konfigurationsdatei ist eine reine Textdatei, die aus Eigenschaftszuweisungen und Kommentaren besteht.

Eigenschaften

Eigenschaftszuweisungen bestehen jeweils aus einem Eigenschaftsnamen, einem = , einem Eigenschaftswert und einer neuen Zeile. So was:

property = value

Eigenschaftsnamen sind nicht leere Literaltextbezeichner. Sie dürfen keine Leerzeichen enthalten. Jede Komponente des Eingabesystems definiert eine Reihe von Eigenschaften, die zur Konfiguration ihrer Funktion verwendet werden.

Eigenschaftswerte sind nicht leere String-Literale, Ganzzahlen oder Gleitkommazahlen. Sie dürfen keine Leerzeichen oder die reservierten Zeichen \ oder " enthalten.

Bei Eigenschaftsnamen und -werten wird die Groß-/Kleinschreibung beachtet.

Kommentare

Kommentarzeilen beginnen mit „#“ und werden bis zum Ende der Zeile fortgesetzt. So was:

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

Gemeinsame Eigenschaften

Die folgende Eigenschaft ist allen Eingabegeräteklassen gemeinsam.

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

device.internal

Definition: device.internal = 0 | 1

Gibt an, ob es sich bei dem Eingabegerät um eine intern eingebaute Komponente und nicht um ein extern angeschlossenes (höchstwahrscheinlich abnehmbares) Peripheriegerät handelt.

  • Wenn der Wert 0 ist, handelt es sich um ein externes Gerät.

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

  • Wenn der Wert nicht angegeben ist, ist der Standardwert 0 für alle Geräte am USB- (BUS_USB) oder Bluetooth-Bus (BUS_BLUETOOTH), andernfalls 1 .

Diese Eigenschaft bestimmt Standardrichtlinienentscheidungen bezüglich Wake-Ereignissen.

Interne Eingabegeräte wecken das Display im Allgemeinen nicht aus dem Ruhezustand, es sei denn, dies ist in der Tastenlayoutdatei oder in einer fest codierten Richtlinienregel ausdrücklich dafür konfiguriert. Diese Unterscheidung verhindert, dass Tastendrücke und Berührungen Ihr Telefon versehentlich aufwecken, wenn es sich in der Tasche befindet. Normalerweise sind nur eine kleine Handvoll Aktivierungsschlüssel definiert.

Umgekehrt wecken externe Eingabegeräte das Gerät in der Regel aggressiver, da davon ausgegangen wird, dass sie während des Transports ausgeschaltet oder nicht angeschlossen sind. Beispielsweise ist das Drücken einer beliebigen Taste auf einer externen Tastatur ein guter Indikator dafür, dass der Benutzer möchte, dass das Gerät aufwacht und reagiert.

Es ist wichtig sicherzustellen, dass der Wert der Eigenschaft device.internal für alle internen Eingabegeräte korrekt eingestellt ist.

Validierung

Stellen Sie sicher, dass Sie die Konfigurationsdateien Ihrer Eingabegeräte mit dem Tool „Keymaps validieren“ validieren.