AudioManager针对情景模式的,可以获取到静音,震动,还是正常设置。如下。
AudioManager volMgr = (AudioManager) mAppContext.getSystemService(Context.AUDIO_SERVICE); switch (volMgr.getRingerMode()) { case AudioManager.RINGER_MODE_SILENT: case AudioManager.RINGER_MODE_VIBRATE: case AudioManager.RINGER_MODE_NORMAL: }
但如果在情景模式中,选择正常,然后在情景模式中设置提示音为静音,并且震动,此时走的是AudioManager.RINGER_MODE_NORMAL这个分支。此时要想判断系统是否震动可以通过下面的方法:
volMgr.shouldVibrate( AudioManager.VIBRATE_TYPE_NOTIFICATION)
判断系统是否静音使用下面方法:
ringTone = RingtoneManager.getActualDefaultRingtoneUri(mAppContext, RingtoneManager.TYPE_NOTIFICATION)
ringTone为null,则为静音。