A partir do Android 16, o framework do Android inclui um serviço de atributo genérico (GATT) chamado serviço de informações do Android (AIS, na sigla em inglês), que permite que dispositivos Bluetooth leiam o nível da API do 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á pareado com um dispositivo central que está executando o SO Android e gerenciar 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 número 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 AIS e ler o nível da API do Android, os dispositivos Bluetooth usam procedimentos de perfil GATT, como a principal descoberta de serviço, a descoberta de características e a 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, significa que a propriedade do sistema não está
definida ou o valor está definido como vazio, ou o sistema operacional do host não é
Android.
Validação
Para verificar se a AIS pode ser descoberta, execute 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.