Слушатель событий Android AudioManager? - PullRequest
1 голос
/ 19 сентября 2011
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

switch (am.getRingerMode()) {
case AudioManager.RINGER_MODE_SILENT:
    Log.i("MyApp","Silent mode");
    break;
case AudioManager.RINGER_MODE_VIBRATE:
    Log.i("MyApp","Vibrate mode");
    break;
case AudioManager.RINGER_MODE_NORMAL:
    Log.i("MyApp","Normal mode");
    break;
}

Используя приведенный выше код, я могу успешно найти различные типы AudioManager RINGER_MODE *, однако я не могу найти EventListener, который перехватывает при изменении состояния. Приложение, которое я пишу, работает в фоновом режиме, поэтому я хотел бы узнать, как наиболее своевременно проверять состояние AudioManager.RINGER_MODE.

Ответы [ 2 ]

3 голосов
/ 19 сентября 2011

Вам нужно будет зарегистрировать BroadcastReceiver в своем коде, который прослушивает намерение RINGER_MODE_CHANGED_ACTION .Это даст вам знать, что состояние изменилось.Как только вы получите намерение, вы можете вызвать getRingerMode (), чтобы узнать текущее состояние.

0 голосов
/ 19 сентября 2011

вы пытались прослушать AudioManager.RINGER_MODE_CHANGED_ACTION?

...