Bluetooth A2DP(Advanced Audio Distribution Profile
)は Bluetooth ステレオプロファイルで、Bluetooth 接続を介してあるデバイスから別のデバイスに高品質のステレオオーディオをストリーミングする方法を定義しています(たとえば、携帯電話から無線ヘッドフォンに音楽をストリーミングなど)。
古いバージョンの Android では、Bluetooth A2DP デバイスに接続するために必要なクラスは API レベルで隠されていましたが、Android 4.0 以降のバージョンでは部分的に表示されるようになりました。
Android デバイスへの Bluetooth デバイスの接続をプログラム的に有効にするには、以下の簡単な手順に従うだけです。
Step 1: AIDL ファイルの作成
最初のステップは Bluetooth A2DP クラスのインスタンスを手に入れることです。 そのために必要なことは、まずAndroidプロジェクトのパッケージandroid.bluetooth
の「src」フォルダに、以下のように2つのAIDLファイルを作成します:
Step 2: 498>
Android Manifestに、Bluetoothと以下のサービスを使用するための権限を追加します :
android.permission.BLUETOOTH
android.permission.BLUETOOTH_ADMIN
android.permission.BROADCAST_STICKY
android.permission.BIND_ACCESSIBILITY_SERVICE
Step 3: Enable Bluetooth and Get Paired Devices
最初に、Bluetoothが有効かどうかを確認する必要があります。 Bluetoothを有効にするよう要求するには、ACTION_REQUEST_ENABLE
アクションIntentでstartActivityForResult()
を呼び出します。
val enableBtIntent = Intent(BluetoothAdapter. ACTION_REQUEST_ENABLE)
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
次のようにBluetoothAdapterクラスからすでにペアリングされたデバイスを取得できます:
devices = BluetoothAdapter.getDefaultAdapter().bondedDevices
デバイスからペアリングしたいヘッドセットデバイスを取得します
ステップ4: Bluetooth接続の確立
getProfileProxy()
を使ってプロファイルと関連付けられたプロキシオブジェクトへの接続を確立してください。 BluetoothProfile.ServiceListener(),
このリスナーは、IPCクライアントがサービスに接続または切断されたときにBluetoothProfile
IPCクライアントを通知します。
Step 5: Stream Audio URL
次のステップは、接続したBluetooth Headsetで再生したいオーディオをストリーミングすることです。 MediaPlayerを初期化し、以下のようにストリーミングURLを再生します:
Step 6: デバイスを切断する
最後にオーディオ再生が完了し、デバイスを切断したい 閉じるプロキシ接続、次のメソッドを使用して切断してMediaPlayerを解放します: