Подтвердить что ты не робот

Android: получать уведомления, когда изменяется текущий режим внутри AudioManager

В Android мне нужно получить уведомление, когда изменится текущий аудиорежим.

Я могу получить это значение через getMode(), но это опрос.

Я не хочу опроса каждые несколько секунд.

Каковы мои варианты?

(Обратите внимание, что я не спрашиваю о ringerMode)

4b9b3361

Ответ 1

Вы можете использовать AudioFocus для устройств под управлением ОС Android версии 2.2 и выше, чтобы ваше приложение также воспроизводило аудио.

Вы можете зарегистрироваться для изменения фокуса аудио, а затем прослушать метод onAudioFocusChange(int focusChange). Таким образом, вы будете уведомлены об изменениях в аудиорежиме, а также о других изменениях фокусного расстояния. Надеюсь, это поможет.

Вы также можете использовать PhoneStateListener для прослушивания изменений состояния телефона и соответствующих аудиорежимов.

Ответ 2

http://developer.android.com/reference/android/media/AudioManager.html

интерфейс AudioManager.OnAudioFocusChangeListener

Определение интерфейса для обратного вызова, вызываемого при обновлении фокуса аудиосистемы.

это даст вам использование метода onAudioFocusChange. Это обнаружило бы изменения режима между прочим.