Android 作業系統識別

從 Android 16 開始,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。