當用戶設置情景模式時,系統會廣播一個 RING_MODE_CHANGE_ACTION 消息,於是我們可以定義一個廣播接收器,監聽此消息,然後通過 AudioManager 提供的接口判斷當前的情景模式做出特定的處理。
2. 關鍵代碼
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(AudioManager.RING_MODE_CHANGE_ACTION)) {
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
final int ringerMode = am.getRingerMode();
switch (ringerMode) {
case AudioManager.RINGER_MODE_NORMAL:
//normal
break;
case AudioManager.RINGER_MODE_VIBRATE:
//vibrate
break;
case AudioManager.RINGER_MODE_SILENT:
//silent
break;
}
}
}
}