Android 6.0 et versions ultérieures prennent en charge un format de données standard pour les connexions de stylet Bluetooth via Bluetooth (BT), Bluetooth à basse consommation (BTLE) ou USB. La plate-forme met en corrélation le timing entre la saisie tactile et les données du stylet, puis fournit les données du stylet pour afficher MotionEvents dans l'application active. Les sections suivantes fournissent des consignes pour les implémentateurs d'appareils OEM, les créateurs d'accessoires pour stylet et les développeurs d'applications pour stylet.
Consignes pour les développeurs d'appareils OEM
Pour activer la prise en charge des stylets Bluetooth, les implémentations d'appareils OEM doivent être compatibles avec le Bluetooth (et devrait être compatible avec BTLE pour une plus grande compatibilité). La plate-forme gère la collecte de données, la corrélation temporelle et le rendu dans l'application pour les événements de stylet compatibles.
Dans 14 et plus,
StylusButtonInputEventTest
émule le comportement d'un stylet connecté et effectue des tests
que les événements de bouton sont consignés correctement. En tant que
solution de contournement pour les versions antérieures, nous vous recommandons de créer un accessoire ou un émulateur de stylet
simuler des événements de stylet.
Consignes pour les créateurs d'accessoires de stylet
Pour implémenter la prise en charge d'un stylet, les implémentateurs d'appareils doivent utiliser le descripteur HID (Human Interface Device) de stylet illustré ci-dessous pour décrire la représentation des données du stylet (sensibilité à la pression, gomme, boutons, ID de l'appareil, niveau de la batterie, état de charge, etc.). Le stylet envoie les informations HID à l'appareil mobile Android, ce qui permet à la plate-forme de mettre en corrélation les données HID avec les données tactiles de l'écran tactile pour générer des événements de stylet à l'aide de la classe MotionEvent
. Sur Android 14 ou version ultérieure, les pressions sur les boutons du stylet génèrent également
des événements internes à l'aide
KeyEvent
.
Les données peuvent être envoyées via les connexions Bluetooth (BT), Bluetooth à basse consommation (BTLE) ou USB.
Exemple de descripteur HID
L'exemple de descripteur HID suivant indique le contact de la pointe, la pression, les boutons principaux et secondaires, l'effaceur et le numéro de série. Le descripteur HID que vous incluez doit refléter précisément ce qui est signalé par le stylet via Bluetooth, qui peut être n'importe quel sous-ensemble des fonctionnalités disponibles.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 }
Consignes pour les développeurs d'applications de stylet
La plate-forme Android gère automatiquement l'association et la corrélation des événements, Les applications nouvelles et existantes sont donc compatibles par défaut avec le stylet Bluetooth. Pour en savoir plus sur la prise en charge des stylets dans les applications Android, consultez la Documentation pour les développeurs Android