Я пытаюсь отключить микрофон на телефоне Android, используя инструменты AudioManager. Поэтому я хочу знать, отключен ли микрофон или нет, используя метод isMicrophoneMute()
, но это приводит к сбою моего приложения. То же самое для метода setMicrophoneMute()
.isMicrophoneMute() и setMicrophoneMute() делают сбои приложений для Android
Я дал MODIFY_PHONE_STATES
, MODIFY_PHONE_STATE
и MODIFY_AUDIO_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/поймать, но он по-прежнему не влияет на состояние микрофона, когда я использую метод unmuteMicrophone()
.
Я не вижу вас инициализации экземпляра AudioManager в любом месте. –
Поделитесь своим временем сбоя logcat –