アプリが Bluetooth または Bluetooth Low Energy で通信する前に、
Bluetooth がデバイスでサポートされていることを確認する必要があります。サポートされている場合は、
有効になっていることを確認します。このチェックが必要となるのは、
<uses-feature.../>
マニフェスト ファイル エントリの android:required
属性
false
に設定。
Bluetooth がサポートされていない場合は、Bluetooth を無効にしてください。 説明します。Bluetooth がサポートされていても無効になっている場合は、 ユーザーがアプリを終了せずに Bluetooth を有効にできる。
最初のステップは Bluetooth 権限の追加 次の API を使用するためにマニフェスト ファイルに追加する必要があります。
権限を設定したら、Bluetooth のセットアップを 2 ステップで完了します。
BluetoothAdapter
を使用します。
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 }
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_STATE
、
EXTRA_PREVIOUS_STATE
,
新しい Bluetooth の状態と古い Bluetooth の状態がそれぞれ格納されます。指定できる値:
これらの追加フィールドは
STATE_TURNING_ON
STATE_ON
,
STATE_TURNING_OFF
,
および STATE_OFF
このブロードキャストのリッスンは、アプリでランタイムを検出する必要がある場合に役立ちます。
Bluetooth の状態に加えられた変更。
デバイスで Bluetooth を有効にすると、Bluetooth クラシックと Bluetooth Low Energy。
クラシック Bluetooth の場合は、Bluetooth デバイスを探すことができます および Bluetooth デバイスに接続する
Bluetooth Low Energy の場合は、BLE デバイスを検索し、GATT サーバーに接続して、 BLE データを転送します。