AndroidでのBluetooth接続後のSCOモードへの切り替えに失敗する
現在、音声認識をBTヘッドセットを用いて実装を行っていますが、SCOモードへの遷移に失敗する時と成功する時があり、logcatを見てもトレースできない状況です。
失敗する時も成功するときも接続前には、
W/AudioRecord: dead IAudioRecord, creating a new one from obtainBuffer()
が表示されます。
失敗時にはこれ以降のログが出力されません。
Bluetoothの制御にはGoogleのBluetoothControllerクラスを使用しています。
GitHub BluetoothController.java
ソースを載せられませんが、処理順としては以下になります。
1.Bluetooth初期化(SCO遷移処理を成功するまで繰り返す)
2.Google Speech to Text初期化
3.Text to Speech初期化
4.認識・読み上げ処理開始
確実にSCOモードに遷移する方法、遷移できなかった場合の処理などご教示願います。
可能であれば、遷移失敗後に再度接続し直し、SCOモードへのリトライがかけられると嬉しいです。