Мне удалось использовать как setStreamVolume, так и adjustStreamVolume с AudioManager, чтобы уменьшить громкость будильника, но он останавливается на 1. Для других аудиопотоков, таких как musi c и рингтон, они go обнуляются. * Есть ли способ отменить сигнал тревоги и установить его на ноль?
Изменить: вот мой код.
AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int currentVolume = audio.getStreamVolume(AudioManager.STREAM_ALARM);
audio.setStreamVolume(AudioManager.STREAM_ALARM, 0, 0);
int amendedVolume = audio.getStreamVolume(AudioManager.STREAM_ALARM);
Для STREAM_ALARM я получаю 7 для maxVolume и 1 для измененногоVolume. Если я использую STREAM_MUSI C, я получаю 15 для maxVolume и 0 для amendedVolume.
Использование метода adjustStreamVolume
audio.adjustStreamVolume(AudioManager.STREAM_ALARM, audio.ADJUST_LOWER, 0);
Громкость уменьшается на 1 при каждом запуске. Для STREAM_RING он снижается до 0, но для STREAM_ALARM он снижается только до 1.
Я не могу использовать setStreamMute, поскольку он устарел в версии 23.
# 2 edit: Я пытался используйте AudioManager.ADJUST_MUTE, кажется, что громкость не устанавливается, если вы go на экране регулировки громкости, но когда будильник срабатывает, звук все еще звучит, и проверка его текущей громкости показывает, что она фактически установлена на 1.
audio.setStreamVolume(AudioManager.STREAM_ALARM, AudioManager.ADJUST_MUTE, 0);