我要检查使用了Android麦克风的噪声水平。 但是访问麦克风之前,我想知道,如果麦克风正被另一个应用程序访问。 如何检查是否麦克风正在由其他应用程序访问?
Answer 1:
有关活动的输入流,并在那里被路由的信息由持有AudioFlinger
, AudioPolicyManager
和AudioHardware
情况下,不共享与应用这些信息。
该AudioManager类提供了一个isMicrophoneMute()
方法的应用程序,但话筒很可能被忽略,而这是不使用的,所以这种方法并没有真正告诉你是否麦克风当前正在使用或没有什么。
一种可能的方式,以找出是否有路由到麦克风的输入流是做一个dumpsys media.audio_policy
和media.audio_flinger
和解析输出。 但风险是,输出将在不同设备上的不同,再加上我不知道,如果你允许转储无根的设备上这些服务的状态。
Answer 2:
我认为迈克尔是正确的,但我们不能在Android 2.3使用dumpsys,并进一步对一些服务
文章来源: Check if Android mic is being used by another app