微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android AudioManager无法更新CallAudioState

如何解决Android AudioManager无法更新CallAudioState

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。