藍牙設定檔

Bluetooth API 支援使用藍牙設定檔。A 罩杯 藍牙設定檔是藍牙介面的無線介面規格 以及裝置間的通訊,例如「免持聽筒」設定檔。行動裝置 裝置才能連線至無線耳機,兩部裝置都必須支援 免持聽筒設定檔。

Bluetooth API 提供下列藍牙實作項目 設定檔:

  • 耳機。耳機設定檔支援藍牙耳機 與手機密不可分Android 提供 BluetoothHeadset 類別, 這是控制藍牙耳機集服務的 Proxy這包括 藍牙耳機與免持 (1.5 版) 設定檔。BluetoothHeadset 類別包括支援 AT 指令。如要進一步瞭解這個主題,請參閱 供應商專屬的 AT 指令
  • A2DP。進階音訊發布設定檔 (A2DP) 設定檔會定義如何 使用者可透過藍牙在裝置間串流播放高品質音訊 以獲得最佳效能和最安全的連線Android 提供 BluetoothA2dp 類別,也就是 控制藍牙 A2DP 服務的 Proxy
  • 健康裝置:Android 支援藍牙健康裝置 設定檔 (HDP)。開啟後,你即可建立使用藍牙通訊的應用程式 使用支援藍牙的健康裝置,例如心率監測器、血液 公尺、溫度計、體重計等如需支援的裝置清單 對應的裝置資料專業化代碼,請參閱藍牙 HDP 裝置資料 專業認證。 ISO/IEEE 11073-20601 [7] 規格也會參照這些值 在 Nomenclature Codes Annex 中當做 MDC_DEV_SPEC_PROFILE_* 使用。如要 如需 HDP 相關資訊,請參閱「健康裝置設定檔」。

使用個人資料的基本步驟如下:

  1. 按照相關說明取得預設轉接程式 藍牙設定
  2. 設定 BluetoothProfile.ServiceListener。 這個事件監聽器會發出通知 BluetoothProfile 客戶 連線或中斷連線時。
  3. 使用 getProfileProxy()敬上 來建立與 在下列範例中,設定檔 Proxy 物件是 BluetoothHeadset
  4. onServiceConnected()、 取得設定檔 Proxy 物件的控制代碼。
  5. 取得設定檔 Proxy 物件後,請使用該物件監控 連線並執行其他與該設定檔相關的操作。

下列程式碼片段顯示如何連線至 BluetoothHeadset Proxy 物件,藉此控制耳機集設定檔:

Kotlin

var bluetoothHeadset: BluetoothHeadset? = null

// Get the default adapter
val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter()

private val profileListener = object : BluetoothProfile.ServiceListener {

    override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = proxy as BluetoothHeadset
        }
    }

    override fun onServiceDisconnected(profile: Int) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = null
        }
    }
}

// Establish connection to the proxy.
bluetoothAdapter?.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET)

// ... call functions on bluetoothHeadset

// Close proxy connection after use.
bluetoothAdapter?.closeProfileProxy(BluetoothProfile.HEADSET, bluetoothHeadset)

Java

BluetoothHeadset bluetoothHeadset;

// Get the default adapter
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

private BluetoothProfile.ServiceListener profileListener = new BluetoothProfile.ServiceListener() {
    public void onServiceConnected(int profile, BluetoothProfile proxy) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = (BluetoothHeadset) proxy;
        }
    }
    public void onServiceDisconnected(int profile) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = null;
        }
    }
};

// Establish connection to the proxy.
bluetoothAdapter.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET);

// ... call functions on bluetoothHeadset

// Close proxy connection after use.
bluetoothAdapter.closeProfileProxy(bluetoothHeadset);

供應商專屬的 AT 指令

應用程式可以註冊,接收預先定義供應商特定 AT 的系統廣播訊息 由耳機傳送的命令 (例如 Plantronics +XEVENT 指令)。例如: 應用程式可能會接收指出已連結裝置電池電量的廣播訊息 通知使用者或視需要採取其他行動建立廣播 接收方 ACTION_VENDOR_SPECIFIC_HEADSET_EVENT敬上 意圖處理耳機專屬的 AT 指令。

健康裝置設定檔

Android 支援藍牙健康裝置設定檔 (HDP)。藍牙健康 API 包含類別 BluetoothHealthBluetoothHealthCallback, 和 BluetoothHealthAppConfiguration, 詳細說明請參閱 Key 類別和 介面

使用 Bluetooth Health API 時,瞭解這些主要 HDP 會很有幫助 概念:

來源
健康裝置,例如體重表、血糖機或溫度計。 將醫療資料傳輸到智慧型裝置,例如 Android 手機或平板電腦。
水槽
接收醫療資料的智慧型裝置。在 HDP 應用程式中, 接收器是以 BluetoothHealthAppConfiguration 物件表示。
註冊
用來註冊接收器來與特定健康狀態通訊的程序 裝置。
連線
在健康裝置 (來源) 與 智慧型裝置 (接收器)。

建立 HDP 應用程式

以下是建立 HDP 應用程式所需的基本步驟:

  1. 取得 BluetoothHealth Proxy 物件的參照。如同一般 頭戴式耳機和 A2DP 設定檔裝置,您必須使用 getProfileProxy() BluetoothProfile.ServiceListenerHEALTH 設定檔類型 與設定檔 Proxy 物件建立連線。

  2. 建立 BluetoothHealthCallback 並註冊應用程式設定 (BluetoothHealthAppConfiguration) 做為健康狀態接收器。

  3. 與健康裝置建立連線。

  4. 成功連線至健康裝置後,讀取及寫入健康狀態 使用檔案描述元。需解讀收到的資料 使用落實 IEEE 11073 的健康狀態管理工具 規格

  5. 完成後,請關閉健康頻道並取消註冊應用程式。該頻道也 會在長時間閒置時關閉。