Identification de l'OS Android

À partir d'Android 16, le framework Android inclut un service d'attribut générique (GATT) appelé service d'informations Android (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 l'OS Android, et de gérer une logique spécialisée en fonction du niveau de l'API.

Service d'informations Android (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 de 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 (ordre octets bas). La valeur de la caractéristique de 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 de niveau d'API Android est lisible sans authentification ni autorisation. Lorsque l'appareil n'est pas détectable, la caractéristique de niveau d'API Android n'est lisible qu'avec une authentification et une autorisation.

Découvrir le service

L'appareil Bluetooth joue le rôle de client GATT, et l'appareil Android celui de serveur. Pour découvrir les AIS et lire le niveau d'API Android, les appareils Bluetooth utilisent des procédures de profil GATT telles que la découverte de service principal, la découverte de caractéristiques et les procédures 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 la valeur est définie sur 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 en recherchant l'UUID du service AIS dans les services principaux détectés.