Identificación del SO Android

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 administran una 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 firmar en formato binario (endianidad baja). El valor de la característica del nivel de API de Android es de 4 octetos de longitud (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 es detectable, la característica de nivel de API de Android solo se puede leer con autenticación y autorización.

Descubre el servicio

El dispositivo Bluetooth está en el rol de cliente GATT y el dispositivo Android está en el rol de servidor. Para descubrir AIS y leer el nivel de API de Android, los dispositivos Bluetooth usan procedimientos de perfil GATT, como los procedimientos de descubrimiento de servicios principales, descubrimiento de características y lectura de valores de características. Para obtener detalles sobre estos procedimientos, consulta la especificación del perfil GATT.

El nivel de API se define mediante la propiedad del sistema ro.build.version.sdk. Si no se puede descubrir el servicio principal, significa que la propiedad del sistema no está definida, el valor está vacío o el sistema operativo del host no es Android.

Validación

Para verificar que se pueda descubrir 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 descubiertos.