Android OS 识别

keywords: AiAssisted,release16,androidconnectivity,bluetooth,category:AndroidConnectivity,docType:Guide

从 Android 14 开始,Android 框架包含一项名为 Android 信息服务 (AIS) 的通用属性 (GATT) 服务,该服务可让蓝牙设备将 Android API 级别读取为服务的 GATT 特征。此服务可让蓝牙设备制造商了解蓝牙外围设备是否正在与运行 Android OS 的中央设备配对,并根据 API 级别管理专用逻辑。

Android 信息服务 (AIS)

AIS 是一种标准 GATT 服务,一个设备上只能有一个 AIS 实例。主服务 UUID 为 e73e0001-ef1b-4e74-8291-2e4f3164f3b5。 Android API 级别特征(UUID:e73e0002-ef1b-4e74-8291-2e4f3164f3b5)包含设备的 API 级别,以无符号 32 位整数(小端字节序)的二进制形式表示。Android API 级别特征值长度为 4 个八位字节(例如,API 级别 36 为 0x24_00_00_00)。当设备可被发现时,无需身份验证或授权即可读取 Android API 级别特征值。当设备不可被发现时,Android API 级别特征只能通过身份验证和授权进行读取。

发现服务

蓝牙设备充当 GATT 客户端,而 Android 设备充当服务器。为了发现 AIS 并读取 Android API 级别,蓝牙设备使用 GATT 配置文件程序,例如主服务发现特征发现特征值读取程序。如需详细了解这些程序,请参阅 GATT 配置文件规范

API 级别由 ro.build.version.sdk 系统属性定义。如果无法发现主服务,则表示系统属性未定义或值设置为空,或者宿主操作系统不是 Android。

验证

如需验证 AIS 是否可被发现,请运行手动测试,将蓝牙外围设备与搭载 Android 的设备配对,然后在发现的主服务中查找 AIS 服务 UUID。