應用程式必須先支援藍牙或藍牙低功耗功能,才能讓應用程式透過藍牙或藍牙低功耗功能進行通訊。如果已啟用,請確認該功能已啟用。請注意,只有在 <uses-feature.../>
資訊清單檔案項目中的 android:required
屬性設為 false
時,才需要進行這項檢查。
如果不支援藍牙,您應妥善停用任何藍牙功能。如果藍牙支援但已停用,您就可以要求使用者不必離開應用程式,就能啟用藍牙。
第一步是在資訊清單檔案中新增藍牙權限,以便使用下列 API。
取得權限後,即可使用 BluetoothAdapter
,在兩個步驟完成藍牙設定:
取得
BluetoothAdapter
。所有藍牙活動都必須使用
BluetoothAdapter
。BluetoothAdapter
代表裝置本身的藍牙轉接器 (藍牙無線電)。如要取得BluetoothAdapter
,您必須先具備Context
。使用此結構定義取得BluetoothManager
系統服務的執行個體。呼叫BluetoothManager#getAdapter
會提供BluetoothAdapter
物件。如果getAdapter()
傳回空值,表示裝置不支援藍牙。例如:
Kotlin
val bluetoothManager: BluetoothManager = getSystemService(BluetoothManager::class.java) val bluetoothAdapter: BluetoothAdapter? = bluetoothManager.getAdapter() if (bluetoothAdapter == null) { // Device doesn't support Bluetooth }
Java
BluetoothManager bluetoothManager = getSystemService(BluetoothManager.class); BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter(); if (bluetoothAdapter == null) { // Device doesn't support Bluetooth }
啟用藍牙。
接下來,您必須確定已啟用藍牙。呼叫
isEnabled()
檢查藍牙目前是否已啟用。如果這個方法傳回 false,系統就會停用藍牙。如要要求啟用藍牙,請呼叫startActivityForResult()
,然後傳入ACTION_REQUEST_ENABLE
意圖動作。此呼叫會發出透過系統設定啟用藍牙的要求 (不會停止應用程式)。例如:
Kotlin
if (bluetoothAdapter?.isEnabled == false) { val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE) startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT) }
Java
if (!bluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); }
系統會顯示對話方塊,要求使用者授予藍牙啟用權限,如圖 1 所示。如果使用者授予權限,系統會開始啟用藍牙,並在程序完成 (或失敗) 後返回應用程式。
圖1. 啟用藍牙對話方塊。
傳送至 startActivityForResult()
的 REQUEST_ENABLE_BT
常數是本機定義的整數,必須大於或等於 0。系統會將此常數做為 requestCode
參數,傳回您在 onActivityResult()
實作中。
如果藍牙啟用成功,您的活動會在 onActivityResult()
回呼中收到 RESULT_OK
結果代碼。如果因錯誤 (或使用者回應「拒絕」) 而未啟用藍牙,則結果代碼為 RESULT_CANCELED
。
應用程式也可以視需要監聽 ACTION_STATE_CHANGED
廣播意圖,而系統會在藍牙狀態變更時廣播這個意圖。這個廣播訊息包含 EXTRA_STATE
和 EXTRA_PREVIOUS_STATE
額外欄位,分別包含新的和舊的藍牙狀態。這些額外欄位可能的值包括 STATE_TURNING_ON
、STATE_ON
、STATE_TURNING_OFF
和 STATE_OFF
。如果應用程式需要偵測藍牙狀態的執行階段變更,監聽這個廣播操作就能派上用場。
在裝置上啟用藍牙後,您就可以使用經典藍牙和低功耗藍牙。
針對藍牙低功耗裝置,您可以尋找 BLE 裝置、連線至 GATT 伺服器,以及轉移 BLE 資料。