1、 8.0版本以下
//单个设置
mBuilder.setVibrate(null);
mBuilder.setVibrate(newlong[]{0l})
mBuilder.setSound(null);
mBuilder.setLights(0,0,0);
//默认全部
mBuilder.setDefaults(Notification.DEFAULT_ALL);
2、 按上面代码,实测锤子5.1系统还是会有声音(这个可以统一使用)
使用builder 进行设置,我用Notification设置无效:
mBuilder.setDefaults(NotificationCompat.FLAG_ONLY_ALERT_ONCE);//统一消除声音和震动
//需要在创建CHANNEL时确定
NotificationManager.IMPORTANCE_MIN: 静默;
NotificationManager.IMPORTANCE_HIGH:随系统使用声音或振动
notificationChannel =newNotificationChannel(CHANNEL_ONE_ID,
CHANNEL_ONE_NAME, NotificationManager.IMPORTANCE_MIN);
很多人可能会碰到这个问题:明明代码一模一样都是复制的为什么还是有声音提醒呢?
那么这既是google的一个坑了;下面介绍几个解决办法:
一、更新channelId,设置为一个新的值,跟以往任何一个都不重复,然后再设置channel.setSound(null, null);就可以了。
二、卸载app,如果代码之前没问题,卸载重新安装就好了,
三、手动调用清空channelId的方法,(这个我没试过,但应该是可以的)
四、卸载app后把importance参数设置为NotificationManager.IMPORTANCE_LOW或者更低。再安装运行就好了。
五、mBuilder.setOnlyAlertOnce(true)设置为true,这样的话,每次只会提醒一次声音,不会重复提醒。
六、如果你不想卸载app的话,有个最好的办法就是同时更换channelId和NotificationManager.IMPORTANCE_LOW就可以了
网友评论