我想使麦克风静音一段时间,例如一天。但是,当用户拨打电话或有人打电话时,我想启用麦克风,然后再禁用它。我是这样做的:
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setMicrophoneMute(true);
此代码有效,除非在通话后。通话后,麦克风已启用。我怀疑电话应用程序可以再次启用麦克风,其他应用程序也可以。通话后如何使麦克风静音?有没有办法限制其他应用程序启用麦克风?
答案 0 :(得分:1)
很明显,电话应用程序在接听/发出呼叫之前启用了麦克风,但是由于要启用麦克风的正常状态,因此它无法恢复以前的状态。
您可以使用两种不同的方法:(1)设置一个侦听器,以检测语音呼叫结束并恢复以前的状态;或者(2)如果您的设备具有Root权限并且Mic位于“ dev / inout / eventX”中(其中“ X”是一个递增的数字,但在设备之间,甚至在重新引导之间,它都是不同的),您可以在“独占”模式下打开它,这样,在释放“锁”之前,没有人可以再次打开/使用它。但是,如果在这种情况下管理不佳,则某个应用程序(按下录制按钮时为Phone App或WhatsApp)可能会崩溃。
但是,我会注意到“ AudioManager.setMicrophoneMute()”与实现有关,并且不能在所有Android版本上运行(取决于Minifacturer)。