我使用带有filter
BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED
的广播监听器来监听蓝牙更改。当蓝牙连接时,我恢复播放,当它断开连接时,我暂停播放。
问题是当我收到蓝牙连接广播并且我恢复播放时,它会在音频重新路由到蓝牙之前在手机扬声器中播放1-2秒。
if (intent.getExtras().getInt(BluetoothHeadset.EXTRA_STATE) == BluetoothHeadset.STATE_CONNECTED){
//these methods doesn't help
mAudioManager.setBluetoothScoOn(true);
mAudioManager.setSpeakerphoneOn(true);
//this returns false
boolean isBluetoothOn = mAudioManager.isBluetoothA2dpOn();
play();
}
我看到的唯一解决方案是启动线程并定期检查mAudioManager.isBluetoothA2dpOn()
是否为真,然后开始播放。
也许我错过了一些东西,并且有一些更好的解决方案。谢谢你的建议。