Android 作業系統識別

從 Android 16 開始,Android 架構會納入名為 Android 資訊服務 (AIS) 的通用屬性 (GATT) 服務,讓藍牙裝置將 Android API 級別讀取為服務的 GATT 特性。這項服務可讓藍牙裝置製造商瞭解藍牙周邊裝置是否與執行 Android 作業系統的中央裝置配對,並根據 API 級別管理專屬邏輯。

Android 資訊服務 (AIS)

AIS 是標準 GATT 服務,裝置上只能有一個 AIS 例項。主要服務 UUID 為 e73e0001-ef1b-4e74-8291-2e4f3164f3b5。Android API 級別特性 (UUID:e73e0002-ef1b-4e74-8291-2e4f3164f3b5) 會以二進位格式 (little-endian) 的無號 32 位元整數,包含裝置的 API 級別。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。