2011-09-19 3 views
0
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 유형을 성공적으로 찾을 수 있지만 상태가 변경되면 catch하는 EventListener를 찾을 수없는 것 같습니다. 필자가 작성한 응용 프로그램은 백그라운드에서 실행되므로 AudioManager.RINGER_MODE의 상태를 가장 신속하게 검사 할 수있는 방법을 알고 싶습니다.Android AudioManager 이벤트 리스너?

답변

2

RINGER_MODE_CHANGED_ACTION 의도를 청취하는 코드에 BroadcastReceiver을 등록해야합니다. 그러면 주정부가 변경되었음을 알려줍니다. 인 텐트를 수신하면 getRingerMode()를 호출하여 현재 상태를 확인할 수 있습니다.

0

AudioManager.RINGER_MODE_CHANGED_ACTION을 (를) 듣습니까?