Android 6.0 y las versiones posteriores admiten un formato de datos estándar para la pluma stylus Bluetooth por Bluetooth (BT), Bluetooth de bajo consumo (BTLE) o USB. El La plataforma correlaciona el tiempo entre la entrada táctil y los datos de la pluma stylus y, luego, proporciona Datos de la pluma stylus para renderizar MotionEvents en la app activa. Lo siguiente proporcionan lineamientos para implementadores de dispositivos OEM, creadores de accesorios para plumas stylus y desarrolladores de apps para la pluma stylus.
Lineamientos para implementadores de dispositivos OEM
Para habilitar la compatibilidad con la pluma stylus Bluetooth, los implementadores de dispositivos OEM deben admitir Bluetooth (y debería admitir BTLE para lograr una compatibilidad más amplia). La plataforma controla la recopilación de datos, la correlación de tiempos y la renderización en la app para los eventos de pluma stylus compatibles.
En 14 y versiones posteriores, StylusButtonInputEventTest
emula el comportamiento de una pluma stylus conectada y prueba que los eventos de los botones se informen correctamente. Como
para versiones anteriores, te recomendamos que crees un emulador o accesorio de pluma stylus que pueda
para simular eventos de la pluma stylus.
Lineamientos para creadores de accesorios de pluma stylus
Para implementar la compatibilidad con un dispositivo pluma stylus, los implementadores de dispositivos deben usar la pluma stylus
El descriptor del dispositivo de interfaz humana (HID) que se muestra a continuación describe cómo se usan los datos de la pluma stylus
(sensibilidad a la presión, borrador, botones, ID del dispositivo, nivel de batería, estado de carga, etc.) es
representados. El dispositivo de la pluma stylus envía la información HID al dispositivo móvil Android, lo que permite que la plataforma correlacione los datos HID con los datos táctiles de la pantalla táctil para producir eventos de la pluma stylus con la clase MotionEvent
. En Android 14 y versiones posteriores, presionar los botones de la pluma stylus también genera eventos internos con la clase KeyEvent
.
Los datos se pueden enviar a través de Bluetooth (BT), Bluetooth de bajo consumo (BTLE) o USB.
Ejemplo de descriptor HID
El siguiente descriptor de HID de ejemplo informa botones de contacto de propina, presión, principal y secundario, el borrador y el número de serie. El descriptor HID que incluyas debe reflejar con precisión lo que informa la pluma stylus a través de Bluetooth, que podría ser cualquier subconjunto de las funciones 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 }
Lineamientos para desarrolladores de apps de pluma stylus
La plataforma de Android controla automáticamente la vinculación y la correlación de eventos. por lo que tanto las apps existentes como las nuevas admiten la pluma stylus Bluetooth de forma predeterminada. Para obtener más información compatibilidad con plumas stylus en apps para Android, consulta el Documentación para desarrolladores de Android