Identificação do SO Android

A partir do Android 16, o framework Android inclui um serviço de atributo genérico (GATT) chamado serviço de informações do Android (AIS), que permite que dispositivos Bluetooth leiam o nível da API Android como uma característica GATT do serviço. Esse serviço permite que os fabricantes de dispositivos Bluetooth saibam se um periférico Bluetooth está pareando com um dispositivo central que executa o SO Android e gerenciem a lógica especializada com base no nível da API.

Serviço de informações do Android (AIS)

O AIS é um serviço GATT padrão, e só pode haver uma instância dele em um dispositivo. O UUID do serviço principal é e73e0001-ef1b-4e74-8291-2e4f3164f3b5. A característica do nível da API do Android (UUID: e73e0002-ef1b-4e74-8291-2e4f3164f3b5) contém o nível da API do dispositivo como um inteiro de 32 bits não assinado em formato binário (little-endian). O valor da característica do nível da API do Android tem 4 octetos de comprimento. Por exemplo, o nível 36 da API é 0x24_00_00_00. Quando o dispositivo está detectável, o valor da característica do nível da API do Android pode ser lido sem autenticação ou autorização. Quando o dispositivo não está detectável, a característica do nível da API do Android só pode ser lida com autenticação e autorização.

Descobrir o serviço

O dispositivo Bluetooth está na função de cliente GATT e o dispositivo Android está na função de servidor. Para descobrir o AIS e ler o nível da API Android, os dispositivos Bluetooth usam procedimentos de perfil GATT, como descoberta de serviço principal, descoberta de características e leitura de valor de característica. Para detalhes sobre esses procedimentos, consulte a especificação do perfil GATT.

O nível da API é definido pela propriedade do sistema ro.build.version.sdk. Se o serviço principal não puder ser descoberto, isso significa que a propriedade do sistema não está definida ou o valor está vazio, ou o sistema operacional host não é o Android.

Validação

Para verificar se o AIS pode ser descoberto, faça um teste manual pareando um periférico Bluetooth com um dispositivo Android e procurando o UUID do serviço AIS nos serviços principais descobertos.