Начиная с Android 16, фреймворк Android включает службу Generic Attribute (GATT), называемую службой информации Android (AIS), которая позволяет устройствам Bluetooth считывать уровень API Android как характеристику GATT службы. Эта служба позволяет производителям устройств Bluetooth знать, сопряжено ли периферийное устройство Bluetooth с центральным устройством, работающим под управлением ОС Android, и управлять специализированной логикой на основе уровня API.
Информационная служба Android (AIS)
AIS — это стандартная служба GATT, и на устройстве может быть только один экземпляр AIS. Основной UUID службы — e73e0001-ef1b-4e74-8291-2e4f3164f3b5
. Характеристика уровня API Android (UUID: e73e0002-ef1b-4e74-8291-2e4f3164f3b5
) содержит уровень API устройства в виде беззнакового 32-битного целого числа в двоичной форме (little-endian). Значение характеристики уровня API Android имеет длину 4 октета (например, уровень API 36 равен 0x24_00_00_00
). Когда устройство доступно для обнаружения, значение характеристики уровня API Android доступно для чтения без аутентификации или авторизации. Когда устройство недоступно для обнаружения, характеристика уровня API Android доступна для чтения только с аутентификацией и авторизацией.
Откройте для себя услугу
Устройство Bluetooth находится в роли клиента GATT, а устройство Android — в роли сервера. Для обнаружения AIS и чтения уровня API Android устройства Bluetooth используют процедуры профиля GATT, такие как процедуры обнаружения первичной службы , обнаружения характеристик и чтения значений характеристик . Подробную информацию об этих процедурах см. в спецификации профиля GATT .
Уровень API определяется системным свойством ro.build.version.sdk
. Если первичная служба не может быть обнаружена, это означает, что системное свойство не определено или значение установлено пустым, или операционная система хоста не является Android.
Проверка
Чтобы проверить возможность обнаружения AIS, запустите ручной тест, подключив периферийное устройство Bluetooth к устройству Android, а затем найдите UUID службы AIS в обнаруженных основных службах.