isMicrophoneMute()和setMicrophoneMute()使Android应用程序崩溃

isMicrophoneMute()和setMicrophoneMute()使Android应用程序崩溃,android,microphone,android-audiomanager,Android,Microphone,Android Audiomanager,我正在尝试使用AudioManager工具使Android手机上的麦克风静音。因此,我想使用isMicrophoneMute()方法知道麦克风是否静音,但这会使我的应用程序崩溃。 setMicrophoneMute()方法也是如此 我已经为我的应用程序授予了MODIFY\u PHONE\u STATES、MODIFY\u PHONE\u STATE和MODIFY\u AUDIO\u SETTINGS权限 这是我的密码: private static AudioManager mAudioMana

我正在尝试使用AudioManager工具使Android手机上的麦克风静音。因此,我想使用
isMicrophoneMute()
方法知道麦克风是否静音,但这会使我的应用程序崩溃。
setMicrophoneMute()
方法也是如此

我已经为我的应用程序授予了
MODIFY\u PHONE\u STATES
MODIFY\u PHONE\u STATE
MODIFY\u AUDIO\u SETTINGS
权限

这是我的密码:

private static AudioManager mAudioManager;


public static boolean unmuteMicrophone(final Context c) {
    if (c == null) {
        Log.v(TAG, "switchMicrophone: Context is null");
        return false;
    }
    ContentResolver cr = c.getContentResolver();
    if (cr == null) {
        Log.d(TAG, "switchMicrophone: ContentResolver is null, " + c);
        return false;
    }
    try {
        Log.v(TAG, "Trying to unmute microphone");
        mAudioManager.setMicrophoneMute(false);
        Log.v(TAG, "Microphone unmuted");
    }
    catch (Exception e) {
        Log.e(TAG, "Microphone can't be unmuted. Error : " + e);
    }
    return !mAudioManager.isMicrophoneMute(); //return the state of the microphone

}

这不会因try/catch块而崩溃,但在我使用
unmutemicroscope()
方法时,它仍然不会影响麦克风状态。

您需要初始化mAudioManager,请使用

mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

我看不到您在任何地方初始化audiomanager实例。请共享崩溃时间日志