Слушатель Android для изменения громкости звонка и других настроек?

Мне было интересно, есть ли способ узнать, изменил ли пользователь громкость звонка или какие-либо настройки на телефоне? Я пытаюсь создать приложение, которое имеет такую ​​возможность: определяет, изменил ли пользователь громкость звонка или изменил ли какие-либо настройки на своем собственном устройстве?


person pdoy    schedule 02.03.2011    source источник


Ответы (1)


Я решил аналогичную проблему. Мне пришлось ограничить максимальную громкость в приложении, вот что я сделал (аудио — это экземпляр AudioManager):

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP){
        if(audio != null){
            int curVolume = audio.getStreamVolume(AudioManager.STREAM_MUSIC);
            int maxVolume = Preferences.getDefaultMaxVolume(Main.this);
            if(curVolume > maxVolume) audio.setStreamVolume(AudioManager.STREAM_MUSIC, maxVolume, 0);
        }

    } 

    return super.onKeyDown(keyCode, event);
}

Вы можете просто использовать метод setStreamVolume() для программного изменения громкости, если это необходимо...

person shaylh    schedule 12.04.2012