Android 6.0 und höher unterstützt ein Standarddatenformat für den Bluetooth-Eingabestift -Verbindungen über Bluetooth (BT), Bluetooth Low Energy (BTLE) oder USB. Die korreliert die Zeit zwischen der Eingabe per Berührung und den Daten des Eingabestifts Eingabestiftdaten verwenden, um MotionEvents in der aktiven App zu rendern. Die folgenden Richtlinien für OEM-Geräteimplementierungen, Entwickler von Eingabestift-Zubehör und für Eingabestift-Apps.
Richtlinien für OEM-Geräte-Implementierer
Um die Unterstützung für Bluetooth-Eingabestifte zu aktivieren, müssen OEM-Geräte-Implementierer Bluetooth unterstützen. (und sollte BTLE unterstützen, um eine umfassendere Kompatibilität zu erreichen). Die Plattform verarbeitet Daten der Datensammlung, der zeitlichen Korrelation und des Renderings in der App für unterstützte Eingabestift-Ereignisse.
Ab 14 Jahren
StylusButtonInputEventTest
emuliert das Verhalten eines verbundenen Eingabestifts und testet
dass Schaltflächen-Ereignisse korrekt gemeldet werden. Als
Bei niedrigeren Versionen empfehlen wir die Erstellung eines Eingabestiftzubehörs oder eines Emulators, der
Eingabestift-Ereignisse simulieren.
Richtlinien für Hersteller von Eingabestift-Zubehör
Damit ein Eingabestift unterstützt wird, müssen Geräte-Implementierer den Eingabestift verwenden
HID-Beschreibung (Human Interface Device) unten, um zu beschreiben, wie Eingabestiftdaten verwendet werden
(Druckempfindlichkeit, Radierer, Tasten, Geräte-ID, Akkustand, Ladestatus usw.) ist
repräsentiert werden. Das Eingabestiftgerät sendet die HID-Informationen an das Android-Mobilgerät. So kann die Plattform HID-Daten mit Touch-Daten vom Touchscreen in Stiftereignisse mithilfe der Klasse MotionEvent
umwandeln. Ab Android 14 wird durch Tastendrücken auf den Eingabestift
interne Ereignisse mithilfe der
Klasse KeyEvent
.
Daten können über Bluetooth (BT), Bluetooth Low Energy (BTLE) oder USB gesendet werden.
Beispiel für einen HID-Deskriptor
Im folgenden Beispiel für einen HID-Deskriptor werden Tippkontakt, Druck, primäre und sekundäre Tasten, Radierer und Seriennummer. Der von Ihnen angegebene HID-Beschreibungsblock sollte genau das widerspiegeln, was vom Eingabestift über Bluetooth gemeldet wird. Dies kann ein beliebiger Teil der verfügbaren Funktionen sein.UsagePage(Digitizer) Usage(Pen) Collection(Application) Usage(Stylus) Collection(Logical) Usage(Tip Pressure) Logical Minimum(0) Logical Maximum(1023) Report Count(1) Report Size(10) Input(Data, Variable, Absolute, No Null) Usage(Barrel Switch) Usage(Secondary Barrel Switch) Usage(Tip Switch) Usage(Invert) Logical Maximum(1) Report Count(4) Report Size(1) Input(Data, Variable, Absolute, No Null) Usage(Transducer Serial Number) Report Count(1) Report Size(128) Feature(Constant, Variable) EndCollection EndCollection unsigned char HID_DESC[] = { 0x05, 0x0D, // UsagePage(Digitizer) 0x09, 0x02, // Usage(Pen) 0xA1, 0x01, // Collection(Application) 0x09, 0x20, // Usage(Stylus) 0xA1, 0x02, // Collection(Logical) 0x09, 0x30, // Usage(Tip Pressure) 0x15, 0x00, // Logical Minimum(0) 0x26, 0xFF, 0x03, // Logical Maximum(1023) 0x95, 0x01, // Report Count(1) 0x75, 0x0A, // Report Size(10) 0x81, 0x02, // Input(Data, Variable, Absolute, No Null) 0x09, 0x44, // Usage(Barrel Switch) 0x09, 0x5A, // Usage(Secondary Barrel Switch) 0x09, 0x42, // Usage(Tip Switch) 0x09, 0x3C, // Usage(Invert) 0x25, 0x01, // Logical Maximum(1) 0x95, 0x04, // Report Count(4) 0x75, 0x01, // Report Size(1) 0x81, 0x02, // Input(Data, Variable, Absolute, No Null) 0x09, 0x5B, // Usage(Transducer Serial Number) 0x95, 0x01, // Report Count(1) 0x75, 0x80, // Report Size(128) 0xB1, 0x03, // Feature(Constant, Variable) 0xC0, // End Collection 0xC0, // End Collection }
Richtlinien für Entwickler von Eingabestift-Apps
Die Android-Plattform übernimmt automatisch Kopplung und Ereigniskorrelation, Sowohl bestehende als auch neue Apps unterstützen standardmäßig den Bluetooth-Eingabestift. Weitere Informationen zur Unterstützung von Eingabestiften in Android-Apps finden Sie in der Android-Entwicklerdokumentation.