Bluetoothの設定

アプリが Bluetooth または Bluetooth Low Energy で通信する前に、 Bluetooth がデバイスでサポートされていることを確認する必要があります。サポートされている場合は、 有効になっていることを確認します。このチェックが必要となるのは、 <uses-feature.../> マニフェスト ファイル エントリの android:required 属性 false に設定。

Bluetooth がサポートされていない場合は、Bluetooth を無効にしてください。 説明します。Bluetooth がサポートされていても無効になっている場合は、 ユーザーがアプリを終了せずに Bluetooth を有効にできる。

最初のステップは Bluetooth 権限の追加 次の API を使用するためにマニフェスト ファイルに追加する必要があります。

権限を設定したら、Bluetooth のセットアップを 2 ステップで完了します。 BluetoothAdapter を使用します。

  1. BluetoothAdapter を取得します。

    BluetoothAdapter は、あらゆる Bluetooth アクティビティに必要です。「 BluetoothAdapter は、デバイス独自の Bluetooth アダプター( Bluetooth 無線など)。BluetoothAdapter を取得するには、まず以下が必要です Context。このコンテキストを使用して、 BluetoothManager のインスタンス 使用することもできます。BluetoothManager#getAdapter を呼び出しています BluetoothAdapter オブジェクトが得られます。getAdapter() が null を返す場合、 デバイスは Bluetooth に対応していません。

    例:

    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. Bluetooth を有効にします。

    次に、Bluetooth が有効になっていることを確認する必要があります。発信 isEnabled()~ Bluetooth が現在有効になっているかどうかを確認します。このメソッドが false を返した場合、 Bluetooth は無効になります。Bluetooth を有効にするようリクエストするには、 startActivityForResult() 渡すには ACTION_REQUEST_ENABLE アクションを指定します。この呼び出しは、Bluetooth を有効にするためのリクエストを システム設定(アプリを停止せずに)管理できます。

    次に例を示します。

    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);
    }
    

以下に示すように、Bluetooth を有効にするユーザー権限をリクエストするダイアログが表示されます。 図 1.ユーザーが権限を付与すると、システムが Bluetooth の有効化を開始し、 プロセスが完了する(または失敗する)と、フォーカスがアプリに戻ります。


図 1. Bluetooth を有効にするダイアログ。

次に渡される REQUEST_ENABLE_BT 定数: startActivityForResult() ローカルで定義された整数です。0 以上の値にする必要があります。システム この定数を onActivityResult() requestCode パラメータとして渡すことをおすすめします。

Bluetooth の有効化に成功すると、アクティビティは RESULT_OK の結果コード: onActivityResult() コールバック。エラー(または ユーザーが「拒否」と応答した場合)の場合、結果コードは次のようになります。 RESULT_CANCELED

必要に応じて、アプリはリッスンもできます。 ACTION_STATE_CHANGED ブロードキャスト インテント(Bluetooth の状態が変化するたびに、システムがブロードキャスト) できます。このブロードキャストには追加フィールドが含まれています EXTRA_STATEEXTRA_PREVIOUS_STATE, 新しい Bluetooth の状態と古い Bluetooth の状態がそれぞれ格納されます。指定できる値: これらの追加フィールドは STATE_TURNING_ON STATE_ON, STATE_TURNING_OFF, および STATE_OFF このブロードキャストのリッスンは、アプリでランタイムを検出する必要がある場合に役立ちます。 Bluetooth の状態に加えられた変更。

ヒント: 検出の許可を有効にすると、 Bluetooth。以前にデバイスの検出の許可を一貫して有効にする予定の場合は、 Bluetooth アクティビティを実行している場合は、前のステップのステップ 2 をスキップできます。

デバイスで Bluetooth を有効にすると、Bluetooth クラシックと Bluetooth Low Energy。

クラシック Bluetooth の場合は、Bluetooth デバイスを探すことができます および Bluetooth デバイスに接続する

Bluetooth Low Energy の場合は、BLE デバイスを検索し、GATT サーバーに接続して、 BLE データを転送します。