À partir d'Android 16, le framework Android inclut un service d'attribut générique (GATT) appelé "Android information service" (AIS), qui permet aux appareils Bluetooth de lire le niveau d'API Android en tant que caractéristique GATT du service. Ce service permet aux fabricants d'appareils Bluetooth de savoir si un périphérique Bluetooth est associé à un appareil central exécutant le système d'exploitation Android, et de gérer une logique spécialisée en fonction du niveau d'API.
Android Information Service (AIS)
L'AIS est un service GATT standard et il ne peut y avoir qu'une seule instance d'AIS sur un appareil. L'UUID du service principal est e73e0001-ef1b-4e74-8291-2e4f3164f3b5
.
La caractéristique du niveau d'API Android (UUID : e73e0002-ef1b-4e74-8291-2e4f3164f3b5
) contient le niveau d'API de l'appareil sous la forme d'un entier 32 bits non signé au format binaire (little-endian). La valeur de la caractéristique du niveau d'API Android est de 4 octets (par exemple, le niveau d'API 36 est 0x24_00_00_00
). Lorsque l'appareil est détectable, la valeur de la caractéristique du niveau d'API Android est lisible sans authentification ni autorisation.
Lorsque l'appareil n'est pas détectable, la caractéristique du niveau d'API Android n'est lisible qu'avec authentification et autorisation.
Découvrir le service
L'appareil Bluetooth est associé au rôle de client GATT, et l'appareil Android au rôle de serveur. Pour découvrir AIS et lire le niveau d'API Android, les appareils Bluetooth utilisent des procédures de profil GATT telles que les procédures de découverte du service principal, de découverte des caractéristiques et de lecture de la valeur des caractéristiques. Pour en savoir plus sur ces procédures, consultez la spécification du profil GATT.
Le niveau d'API est défini par la propriété système ro.build.version.sdk
. Si le service principal ne peut pas être détecté, cela signifie que la propriété système n'est pas définie ou que sa valeur est vide, ou que le système d'exploitation hôte n'est pas Android.
Validation
Pour vérifier que l'AIS peut être détecté, exécutez un test manuel en associant un périphérique Bluetooth à un appareil Android, puis recherchez le UUID du service AIS dans les services principaux détectés.