当用户设置情景模式时,系统会广播一个 “android.media.RINGER_MODE_CHANGED”消息,于是我们可以定义一个广播接收器,监听此消息,然后通过 AudioManager 提供的接口判断当前的情景模式做出特定的处理。
代码示例:
private BroadcastReceiver mRingModeReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(AudioManager.RINGER_MODE_CHANGED_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; } } } };
做出相应的处理就行了。