設定藍牙

您必須先讓應用程式透過藍牙或藍牙低功耗技術進行通訊, 。 請確認已啟用。請注意,只有在 <uses-feature.../> 資訊清單檔案項目中的 android:required 屬性為 已設為 false

如果不支援藍牙,請妥善停用所有藍牙功能 接著介紹網際網路通訊層 包括兩項主要的安全防護功能如果支援藍牙但已停用,您可以要求 使用者不需離開您的應用程式即可啟用藍牙。

第一步是 新增藍牙權限 新增到資訊清單檔案,即可使用下列 API。

取得權限後,系統會透過兩個步驟完成藍牙設定 使用 BluetoothAdapter

  1. 取得 BluetoothAdapter

    任何及所有藍牙活動都需要 BluetoothAdapterBluetoothAdapter 代表裝置專屬的藍牙轉接器 ( 藍牙無線電)。如要取得 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
    }
    
  2. 啟用藍牙。

    接下來,請務必確保藍牙已啟用。致電 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. 啟用藍牙對話方塊。

傳遞至 REQUEST_ENABLE_BT 常數 startActivityForResult() 是本機定義的整數,必須大於或等於 0。系統 會將這些常數傳回給您 onActivityResult()敬上 做為 requestCode 參數的實作。

如果啟用藍牙成功,您的活動就會收到 RESULT_OK 結果程式碼 onActivityResult() 回呼。如果因為發生錯誤而未啟用藍牙 (或 使用者回應「拒絕」),那麼結果代碼是 RESULT_CANCELED

或者,應用程式也可以監聽 ACTION_STATE_CHANGED敬上 廣播意圖;只要藍牙狀態,系統就會廣播意圖 並輸入變更內容這則直播含有多餘欄位 EXTRA_STATEEXTRA_PREVIOUS_STATE, 分別包含新舊藍牙狀態可能的值包括 這些額外欄位 STATE_TURNING_ONSTATE_ON, STATE_TURNING_OFF, 和 STATE_OFF。 如果應用程式需要偵測執行階段,監聽此廣播訊息就能派上用場 對藍牙狀態所做的變更。

提示:啟用可偵測性會自動啟用 藍牙。如果您打算定期啟用裝置搜尋功能 執行藍牙活動時,您可以略過前述的步驟 2。

在裝置上啟用藍牙後,就能同時使用傳統藍牙和 藍牙低功耗。

如果是經典藍牙,你可以尋找藍牙裝置連結藍牙裝置

針對藍牙低功耗裝置,你可以尋找 BLE 裝置連線至 GATT 伺服器,以及 轉移 BLE 資料