Android 通知(关闭声音和震动)

参考博客:https://www.jianshu.com/p/b9a1975bc4b7

参考博客:https://blog.csdn.net/fzkf9225/article/details/81119780

1、 8.0版本以下

//单个设置
mBuilder.setVibrate(null);
mBuilder.setVibrate(new long[]{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);//统一消除声音和震动

 3、 8.0版本

//需要在创建CHANNEL时确定
NotificationManager.IMPORTANCE_MIN: 静默;
NotificationManager.IMPORTANCE_HIGH:随系统使用声音或振动 

notificationChannel = new NotificationChannel(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就可以了

(所有设置均未生效,修改了CHANNELID后生效) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值