Android AudioManager无法更新CallAudioState

问题描述

我正在尝试将VoIP功能添加到我的应用程序中。我一直在使用Android的ConnectionService来确保它可以与其他通话应用程序很好地兼容,但是我遇到了使蓝牙,扬声器和听筒模式正常工作的问题。

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

然后,我正在使用AudioManager调用诸如setSpeakerphoneOn(true/false)setBluetoothScoOn(true/false)之类的方法,以尝试在扬声器,听筒和蓝牙之间切换。我希望调用这些方法会导致onCallAudioStateChange()被更新的信息再次调用,但是它没有这样做。有什么我想念的吗?还是我应该处理另一种方式?

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)