Android 6.0 e versioni successive supportano un formato di dati standard per le connessioni dello stilo Bluetooth tramite Bluetooth (BT), Bluetooth Low Energy (BTLE) o USB. La piattaforma correla la temporizzazione tra l'input tocco e i dati dello stilo, quindi fornisce i dati dello stilo per eseguire il rendering di MotionEvents nell'app attiva. Le sezioni seguenti forniscono linee guida per gli implementatori di dispositivi OEM, i creator di accessori per stilo e gli sviluppatori di app per stilo.
Linee guida per gli sviluppatori di dispositivi OEM
Per attivare il supporto dello stilo Bluetooth, gli implementatori dei dispositivi OEM devono supportare il Bluetooth (e dovrebbero supportare BTLE per una maggiore compatibilità). La piattaforma gestisce i dati raccolta, correlazione temporale e rendering all'app per eventi stilo.
In 14 e versioni successive,
StylusButtonInputEventTest
emula il comportamento di uno stilo connesso e verifica
che gli eventi dei pulsanti vengano registrati correttamente. Come
alternativa per le versioni precedenti, consigliamo di creare un emulatore o un accessorio stilo in grado di
simulare eventi di stilo.
Linee guida per i creator di accessori per stilo
Per implementare il supporto su un dispositivo con stilo, gli implementatori del dispositivo devono utilizzare il descrittore HID (Human Interface Device) dello stilo mostrato di seguito per descrivere la modalità di rappresentazione dei dati dello stilo (sensibilità alla pressione, gomma, pulsanti, ID dispositivo, livello batteria, stato di ricarica e così via). Il dispositivo con il pennino invia le informazioni HID al dispositivo mobile Android,
consentendo alla piattaforma di correlare i dati HID con i dati tocco del touchscreen
per produrre eventi del pennino 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.
Descrittore HID di esempio
Il seguente descrittore HID di esempio segnala il contatto della punta, la pressione, i pulsanti principali e secondari, la gomma e il numero di serie. Il descrittore HID che includi deve riflettere con precisione ciò che viene segnalate dallo stilo tramite Bluetooth, che potrebbero 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, in modo che sia le app esistenti che quelle nuove supportino lo stilo Bluetooth per impostazione predefinita. Per scoprire di più sul supporto degli stili nelle app per Android, consulta la documentazione per gli sviluppatori Android.