Зарегистрируйтесь для AUDIO_SERVICE
, а затем используйте AudioManager
для регулировки громкости вверх / вниз или установки профилей.
Или, если вы хотите прослушать изменения в аудио-фокусе, сделайте вашу активность implements AudioManager.OnAudioFocusChangeListener
. Переопределить неосуществленный метод. Создайте переключатель, который будет заботиться о типах изменений.
Как:
@Override
public void onAudioFocusChange(int focusChange) {
switch(focusChange)
{
case AudioManager.AUDIOFOCUS_GAIN:
//do something
break;
case AudioManager.AUDIOFOCUS_LOSS:
break;
}
Или, если вы хотите прослушать изменения аудиовыхода, например отключить наушники (переключение на динамик телефона), используйте ACTION_AUDIO_BECOMING_NOISY
sticky broadcast
http://developer.android.com/reference/android/media/AudioManager.html#ACTION_AUDIO_BECOMING_NOISY
http://developer.android.com/reference/android/media/AudioManager.html#RINGER_MODE_SILENT
Смотрите здесь
Редактировать : Это решение. Не нужно было обрабатывать AudioFocus, а просто установить другой профиль звонка или настроить громкость
if (hour == myTime.getHour() && minute == myTime.getMinute()) {
if (Settings.getSetMyTime(this))
showNotificationAlarm(R.drawable.icon,
"It's time to work");
AudioManager audiomanager =(AudioManager)YourActivityName.this.getSystemService(Context.AUDIO_SERVICE);
audiomanager.setRingerMode(AudioManager.RINGER_MODE_SILENT); //or adjust volume here instead setting silent profile for the ringer
}