Notification.DEFAULT_VIBRATE在任何模式下都震动

    今天遇到的问题是发现给Notifycation设置了Notification.DEFAULT_VIBRATE的flag后会在任何情况下都震动。按照API的说法应该是该Flag会随用户设定全局是否震动而震动。这有可能是因为我刷MIUI后的系统漏洞。

    但是不管怎么说解决问题的方式如下:

    stackOverflow上也有人遇到了相同的问题,需要在设置Notification.DEFAULT_VIBRATE之前人为的判断一下当前系统的震动情况:

    

				notification.defaults = Notification.DEFAULT_LIGHTS
						| Notification.DEFAULT_SOUND;
				// Modify by H3c Start:只有当震动模式开启的时候才会震动
				AudioManager audiomanager = (AudioManager)TimeHutApplication.getInstance().
                        getSystemService(Context.AUDIO_SERVICE);
				switch (audiomanager.getRingerMode()) {
		        case AudioManager.RINGER_MODE_SILENT:
		            break;
		        case AudioManager.RINGER_MODE_VIBRATE:
		        case AudioManager.RINGER_MODE_NORMAL:
		            notification.defaults |= Notification.DEFAULT_VIBRATE;
		            break;
		            // Modify by H3c end

你可能感兴趣的:(Android,App)