2011-09-19 248 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 *類型,但是我似乎無法找到狀態發生變化時捕獲的EventListener。我正在編寫的應用程序在後臺運行,因此我想知道檢查AudioManager.RINGER_MODE狀態的最及時方式。Android AudioManager事件監聽器?

回答

2

您需要在代碼中註冊一個BroadcastReceiver,該代碼用於偵聽RINGER_MODE_CHANGED_ACTION意圖。這會讓你知道狀態已經改變。一旦你收到了這個意圖,你可以調用getRingerMode()來找出當前狀態。

0

你聽過AudioManager.RINGER_MODE_CHANGED_ACTION嗎?