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 in der Regel nicht erforderlich, da sie dank des standardmäßigen Systemverhaltens in der Regel sofort einsatzbereit 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 von Eingabegeräten 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. Standardmäßig wird bei einer Maus ein Cursor auf dem Bildschirm angezeigt, der die Bewegungen der Maus verfolgt und Berührungen simuliert, wenn auf die Maus geklickt wird. Die Maus kann zwar anders konfiguriert werden, das Standardverhalten reicht für Standardmausperipheriegeräte jedoch in der Regel aus.
Bei bestimmten Eingabegeräten ist die Zuordnung nicht immer eindeutig. So unterstützen beispielsweise Multitouch-Touchscreens und Touchpads mindestens den Ereignistyp EV_ABS
und die Codes ABS_MT_POSITION_X
und ABS_MT_POSITION_Y
. Die beabsichtigte Verwendung dieser Geräte ist jedoch sehr unterschiedlich und kann nicht immer automatisch ermittelt werden. Außerdem sind zusätzliche Informationen erforderlich, um die von Touchgeräten gemeldeten Druck- und Größeninformationen sinnvoll zu nutzen. Daher benötigen Touchgeräte, insbesondere integrierte Touchscreens, in der Regel IDC-Dateien.
Standort
Konfigurationsdateien für Eingabegeräte werden anhand der USB-Anbieter-, Produkt- (und optional Versions-) ID oder des Namens des Eingabegeräts gefunden.
Die folgenden Pfade werden in der Reihenfolge abgefragt.
/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 Eingabegeräte ist eine Nur-Text-Datei mit Attributzuweisungen und Kommentaren.
Properties
Property-Zuweisungen bestehen jeweils aus einem Property-Namen, einem =
, einem Property-Wert und einem Zeilenumbruch. Beispiel:
property = value
Eigenschaftsnamen sind nicht leere Literaltext-IDs. Sie dürfen keine Leerzeichen enthalten. Für jede Komponente des Eingabesystems werden eine Reihe von Eigenschaften definiert, mit denen die Funktion konfiguriert wird.
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.
Verwendungsbeispiele
# 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 Property ist für alle Eingabegeräteklassen gemeinsam.
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 der Wert nicht angegeben ist, ist der Standardwert
0
für alle Geräte auf dem USB-Bus (BUS_USB) oder Bluetooth-Bus (BUS_BLUETOOTH). Andernfalls ist es1
.
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 wenige Wecktasten definiert.
Externe Eingabegeräte hingegen wecken das Gerät 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 Ihrer Eingabegeräte mit dem Tool Validate Keymaps.