Программное отключение звука в Android

Я пересматриваю старый вопрос, опубликованный (в начале 2014 года) здесь:

Для недавнего проекта я создаю приложение, которое может отключить звук существующего вызова и получить аудиозапись от пользователя. Я знаю, что аудиозапись во время разговора работает, это не проблема (запись только пользовательского микрофона). Теперь я также могу уменьшить громкость программно, что я и сделал, используя код На моем Github, здесь

В частности, я использую AudioManager , чтобы установить громкость на 0, а также отключить звук в качестве резервной копии, но не работает.. Мне интересно, является ли это конкретной проблемой Samsung или нет..

mgr.setStreamVolume(stream, progress, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mgr.adjustVolume(AudioManager.ADJUST_MUTE, AudioManager.FLAG_VIBRATE);
boolean a = mgr.isVolumeFixed();
Log.d("MUTING", "Volume fixed: "+a);
boolean streamMuteStatus = mgr.isStreamMute(stream);
Log.d("MUTING", "Stream Mute Status: "+streamMuteStatus);

Я распечатываю приведенные выше логические переменные для целей тестирования, но обе они выводят «False».

Но устройство Samsung S5 вообще не позволяет мне установить громкость на 0. Это верно даже при регулировке громкости во время разговора с помощью ползунка громкости. Ползунок физически не перемещается в крайнее левое положение на панели поиска. На рисунке ниже показано крайнее левое положение, в которое я могу перетащить:

Минимальная позиция панели поиска громкости звонка

У кого-нибудь есть идеи о том, как я могу отключить поток входящего вызова?


person BykerHero    schedule 28.06.2016    source источник
comment
Я сталкиваюсь с той же проблемой (как на телефоне Pixel 2, так и на планшете Alcatel). Вы нашли какой-нибудь путь вперед?   -  person Michael Pedersen    schedule 10.11.2017