Android 8.0以降では、現在使用中のBluetoothイヤホン、スピーカーのコーデックを確認することができます。(OS標準で対応)
Android 8.0未満の端末ではこの機能が使えないので、それらの端末でBluetoothのコーデックを確認する方法を紹介します。
以下の方法はADB環境が必要になります。まだ導入していない方はこちらを参考にしてください。
手順の流れは、
- adbコマンドでスマホのログの取得を開始する
- スマホとBluetoothイヤホン、スピーカーをペアリングして適当な音楽を再生する
- ログの取得を停止する
- ログファイルでコーデックを確認する
という感じになります。
それでは順を追って説明します。
Android 8.0未満の端末でBluetoothのコーデックを確認する方法
まずはスマホのBluetooth機能をオフにしてBluetoothイヤホン、スピーカーのペアリングを解除しておきます。
次にPCとスマホをUSBケーブルでつないだら、管理者としてコマンドプロンプトを起動しadbコマンドが使える状態にします。(スマホ側で開発者向けオプションの「USBデバッグ」をオンにするのを忘れずに)
次の内容をコピペしてエンターキーを押すとスマホのログの取得が開始されます。Cドライブ直下にlog.txtというファイルで保存されます。
adb logcat -v threadtime > c:\log.txt
スマホとBluetoothイヤホンまたはスピーカーをペアリングして適当な音楽を再生します。20秒ほど再生したら停止します。
コマンドプロンプトの画面に戻り、Ctrlキーを押しながらCキーを押します。これでログの取得が終了します。
ログを解析する
(解析というほど大げさなことはしませんが・・・)
取得したログファイル「log.txt」をメモ帳などのテキストエディタで開き、「SBC」「aptX」といったコーデックに関する単語で検索をかけます。
それっぽい箇所をみつけたらログを確認します。ログの内容は機種によって異なっていて、機種によってはコーデックの細かいパラメータも確認できるようです。
MeMO Pad HD7とダイソー600円Bluetoothスピーカーを接続した時のログ
I/ ( 130): [A2DP] wifi is not connected , increase a2dp throughput
I/bluetooth_common.cpp( 449): [JNI][API] create_prop_array : name=State, type=s, len=0
I/BluetoothA2dpService.cpp( 449): [A2DP][EventLoop] create_prop_array playing
D/ ( 130): [A2DP] malloc sbc_priv, address:44407a00 size:3576
I/ ( 130): [A2DP] sbc para, freq:44100, blocks:16, channel:2, subband:8, allocation:0, bitpool:53
I/ ( 130): [A2DP] sbc_interval:2902 us.
「SBC」で接続していることがわかります。Bitpool値が「53」であることも確認できます。
Qua Phone PX LGV33とダイソー600円Bluetoothスピーカーを接続した時のログ
08-23 21:06:06.318 I bt_btif_media: [BTUI] Selected Codec = SBC
08-23 21:06:06.318 I bt_btif_media: ===============================
08-23 21:06:06.318 E bt_btif : [BTUI] current codec id: 0x0 (SBC:0x0/aptX:0xff)
こちらは「SBCで接続」の情報のみ確認できました。