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), andernfalls1
.
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.