Android 6.0 e versioni successive supportano un formato di dati standard per le connessioni delle stilo Bluetooth tramite Bluetooth (BT), Bluetooth Low Energy (BTLE) o USB. La piattaforma correla la tempistica tra l'input tocco e i dati dello stilo, quindi fornisce i dati dello stilo per eseguire il rendering di MotionEvent nell'app attiva. Le sezioni seguenti forniscono linee guida per gli implementatori di dispositivi OEM, i creatori di accessori per stilo e gli sviluppatori di app per stilo.
Linee guida per gli implementatori di dispositivi OEM
Per attivare il supporto dello stilo Bluetooth, gli implementatori di dispositivi OEM devono supportare il Bluetooth (e devono supportare BTLE per una compatibilità più ampia). La piattaforma gestisce la raccolta dei dati, la correlazione della tempistica e il rendering nell'app per gli eventi stilo supportati.
In 14 e versioni successive,
StylusButtonInputEventTest
emula il comportamento di uno stilo connesso e verifica
che gli eventi dei pulsanti vengano segnalati correttamente. Come soluzione alternativa per le versioni precedenti, ti consigliamo di creare un accessorio o un emulatore stilo in grado di simulare gli eventi dello stilo.
Linee guida per i creatori di accessori stilo
Per implementare il supporto su un dispositivo stilo, gli implementatori di dispositivi devono utilizzare il descrittore HID (Human Interface Device) dello stilo mostrato di seguito per descrivere come vengono rappresentati i dati dello stilo (sensibilità alla pressione, gomma, pulsanti, ID dispositivo, livello batteria, stato di ricarica e così via). Il dispositivo stilo invia le informazioni HID al dispositivo mobile Android,
consentendo alla piattaforma di correlare i dati HID con i dati di tocco del touchscreen
per produrre eventi stilo utilizzando la classe
MotionEvent
. In Android 14 e versioni successive, le pressioni dei pulsanti sullo stilo generano anche
eventi interni utilizzando la classe
KeyEvent
.
I dati possono essere inviati tramite Bluetooth (BT), Bluetooth Low Energy (BTLE) o USB.
Esempio di descrittore HID
Il seguente descrittore HID di esempio segnala il contatto della punta, la pressione, i pulsanti principale e secondario, la gomma e il numero di serie. Il descrittore HID che includi deve riflettere con precisione ciò che viene segnalato dallo stilo tramite Bluetooth, che potrebbe essere un sottoinsieme delle funzionalità disponibili.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 }
Linee guida per gli sviluppatori di app per stilo
La piattaforma Android gestisce automaticamente l'accoppiamento e la correlazione degli eventi, quindi sia le app esistenti sia quelle nuove supportano la stilo Bluetooth per impostazione predefinita. Per scoprire di più sul supporto degli stili nelle app per Android, consulta la documentazione per gli sviluppatori di Android.