我开发了一个音频处理应用程序,该应用程序可以在后台持续运行并监听特定的信号,并在发出信号时向用户发送警报。即使用户正在通话,这一切都很好,因为它已实现了电话状态侦听器并允许正确共享MIC。但是,当其他应用程序(如Whatsapp)正在拨打语音电话时,就会变得有问题,因为电话状态侦听器不会检测到这些音频呼叫,因为从技术上讲它们不是电话。有人知道如何正确监控是否有任何应用程序正在使用VOIP吗?
答案 0 :(得分:2)
没有确定的解决方案,但是您可以听一下AudioManager.getMode()的更改。 当进行正常(非VOIp)语音呼叫时,电话App将该模式设置为IN_CALL。 通常,其他进行VOIp调用的应用会将该模式设置为IN_COMMUNICATION。 因此,您可以删除侦听器,并创建一个侦听AudioManager.getMode()更改并引发两种模式所需事件的线程。