Android AudioManager未更新CallAudioState

Android AudioManager未更新CallAudioState,android,android-bluetooth,voip-android,android-connectionservice,Android,Android Bluetooth,Voip Android,Android Connectionservice,我正在尝试将VoIP功能添加到我的应用程序中。我一直在使用Android的连接服务,以确保它与其他通话应用程序配合良好,但我遇到了蓝牙、扬声器和耳机模式正常工作的问题 我的自定义连接类覆盖了onCallAudioStateChanged(),它提供了一个CallAudioState对象,我可以使用该对象查看当前使用的路由以及可用的蓝牙设备 然后我使用AudioManager调用方法,如setspeakerphone(真/假)和setBluetoothScoOn(真/假)尝试在扬声器、耳机和蓝牙之

我正在尝试将VoIP功能添加到我的应用程序中。我一直在使用Android的
连接服务
,以确保它与其他通话应用程序配合良好,但我遇到了蓝牙、扬声器和耳机模式正常工作的问题

我的自定义连接类覆盖了
onCallAudioStateChanged()
,它提供了一个
CallAudioState
对象,我可以使用该对象查看当前使用的路由以及可用的蓝牙设备

然后我使用
AudioManager
调用方法,如
setspeakerphone(真/假)
setBluetoothScoOn(真/假)
尝试在扬声器、耳机和蓝牙之间切换。我希望调用这些方法会导致使用更新的信息再次调用
onCallAudioStateChange()。有什么我遗漏的吗?还是我应该用另一种方式来处理这件事

另一个问题,如果只连接了一个蓝牙设备,我希望呼叫
setBluetoothScoOn(true)
可以正常工作,但是如果手机有多个可用设备,我如何选择要使用的设备