美文网首页
Android 通知(关闭声音和震动)

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

作者: 半个木头人 | 来源:发表于2020-07-07 18:52 被阅读0次

原文:https://blog.csdn.net/smiletofuture/article/details/106154202?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

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);//统一消除声音和震动

3、 8.0版本

//需要在创建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就可以了

相关文章

网友评论

      本文标题:Android 通知(关闭声音和震动)

      本文链接:https://www.haomeiwen.com/subject/jjuzqktx.html