我有一个非常有趣的问题。
我的印象是,当我的应用程序使用麦克风时,Android系统进程(如传入或传出呼叫)需要麦克风,我的应用程序无需任何考虑即可释放它。
但我想这不再是问题,因为我收到的抱怨很少,当使用该应用程序并且有来电时,通话中的另一方听不到。
是否有任何方法可以确保每当系统进程请求麦克风发布时?
目前, 无法检查其他应用是否请求麦克风 。 但是,有一些解决方法:
onPause()
释放麦克风,以便前台应用可以使用它。 如果您在后台服务中录制音频,则无效。 据我所知, 没有办法知道麦克风的状态是忙碌,可用还是有人要求它,因为不管怎样这些都是系统管理流程和资源的责任所以要记住这一点,你不能保持麦克风永远存在,所以你无法控制它意味着你无法管理和检测资源上的请求。以下是一些可能对你有帮助的信息。
您可以尝试的是,克服所有可能性,当系统可以使用麦克风设置广播接收器进行呼叫广播时,当他们触发释放麦克风时,当呼叫完成后,您可以再次获取它。
在我的情况下,我创建了后台线程,检查来自麦克风的传入位。 如果它们为零(或数秒滞后),应用程序会中断该过程。 然而,当然,这不是一个“好”的解决方案,但可能会有所帮助。