Идентификация ОС Android

Начиная с Android 16, фреймворк Android включает службу общих атрибутов (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-битного целого числа в двоичной форме (с прямым порядком байтов). Значение характеристики уровня 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 в обнаруженных основных службах.