Как отключить звук нажатия клавиш громкости только в моем приложении на Android? - PullRequest
2 голосов
/ 19 января 2011

Должен ли я просто отключить громкость onResume и снова установить уровень громкости onPause с AudioManager?

Или есть другой правильный способ сделать это?

Ответы [ 2 ]

2 голосов
/ 19 января 2011

Я думаю, что ваш ответ лежит в документации для setStreamMute().

Команда mute защищена от смерти клиентского процесса: если процесс с активным запросом mute в потоке умирает, этот поток будет отключен автоматически.

Запросы отключения звука для данного потока являются кумулятивными: AudioManager может принимать несколько запросов отключения звука от одного или нескольких клиентов, и поток будет отключен только при получении того же количества запросов включения звука.

Для удобства пользователей приложения ДОЛЖНЫ включить звук приглушенного потока в onPause (), а при необходимости mute снова включается в onResume ().

0 голосов
/ 13 октября 2015

Если кому-то интересно, есть обходной путь, чтобы ваше приложение не отключало все.Выполнение следующих действий приведет к отключению клавиш регулировки громкости, а уведомления о входящих вызовах останутся в соответствии с настройками системы (вместо принудительного отключения звука).

setVolumeControlStream(AudioManager.STREAM_DTMF);
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamMute(AudioManager.STREAM_DTMF, true);
...