A partir de Android 16, el framework de Android incluye un servicio de atributo genérico (GATT) llamado servicio de información de Android (AIS), que permite que los dispositivos Bluetooth lean el nivel de API de Android como una característica GATT del servicio. Este servicio permite que los fabricantes de dispositivos Bluetooth sepan si un periférico Bluetooth se está vinculando con un dispositivo central que ejecuta el SO Android y administren la lógica especializada según el nivel de API.
Servicio de información de Android (AIS)
El AIS es un servicio GATT estándar y solo puede haber una instancia de AIS en un dispositivo. El UUID del servicio principal es e73e0001-ef1b-4e74-8291-2e4f3164f3b5
.
La característica de nivel de API de Android (UUID: e73e0002-ef1b-4e74-8291-2e4f3164f3b5
) contiene el nivel de API del dispositivo como un número entero de 32 bits sin signo en formato binario (little-endian). El valor de la característica del nivel de API de Android tiene una longitud de 4 octetos (por ejemplo, el nivel de API 36 es 0x24_00_00_00
). Cuando el dispositivo es detectable, el valor de la característica del nivel de API de Android se puede leer sin autenticación ni autorización.
Cuando el dispositivo no se puede detectar, la característica del nivel de API de Android solo se puede leer con autenticación y autorización.
Descubre el servicio
El dispositivo Bluetooth tiene el rol de cliente GATT y el dispositivo con tecnología Android tiene el rol de servidor. Para descubrir el AIS y leer el nivel de API de Android, los dispositivos Bluetooth usan procedimientos de perfil GATT, como los procedimientos de descubrimiento de servicio principal, descubrimiento de característica y lectura del valor de la característica. Para obtener detalles sobre estos procedimientos, consulta la especificación del perfil GATT.
El nivel de API se define con la propiedad del sistema ro.build.version.sdk
. Si no se puede detectar el servicio principal, significa que la propiedad del sistema no está definida o que el valor está establecido como vacío, o bien que el sistema operativo host no es Android.
Validación
Para verificar que se pueda detectar el AIS, ejecuta una prueba manual. Para ello, vincula un periférico Bluetooth con un dispositivo Android y, luego, busca el UUID del servicio de AIS en los servicios principales detectados.