常驻通知栏去除声音或震动

应用启动后显示常驻通知栏。声音 和 震动这块设置都是默认的,也可以说就没有重新设置这块。默认就是常驻通知栏显示时是震动,是响铃,还是静音,都是跟系统设置来的。

这样运行了一段时间,没有太大问题。忽然有一天,有用户留言说自己的手机打开我们的应用后一直在响。

很快确定到,这个就是常驻通知栏刷新的问题。常驻通知栏中构造Notification的时候,默认了一些设置。这在大部分手机上正常,不会有明显的问题,如xiao mi 6, honor 10,oppo A5等。

而在某些手机上会出现问题,比如M1816。具体是这样的,把手机设置为震动,那么打开我们应用的时候,会出现明显的震动,不止一次;把手机设置为响铃,则会出现明显的提示声音。当然,手机静音状态下没有问题。

那就把通知栏的震动 或者 提示音去掉。

1、mBuilder.setSound(null);

这种设置无效,至少在8.0以上的手机无效。

2、mBuilder.setOnlyAlertOnce(true)

这样设置,每次只会提醒一次声音,不会重复提醒。

3、改变通知优先级   (改之前设置的是    IMPORTANCE_DEFAULT )

这样设置,不管手机设置震动,还是响铃,,,我们应用的常驻通知栏都只是默默的显示,不会震动或者有提示音。

 

在8.0以后,通知栏的使用需要配合NotificationChannel

NotificationChannel channel = new NotificationChannel(channelId, channelName, importance);

 

channelId需要有唯一性。如果是重复的,在通知栏里面就会给覆盖掉。

importance是表示设置通知的优先级:

      NotificationManager.IMPORTANCE_NONE          关闭通知
      NotificationManager.IMPORTANCE_MIN              开启通知,不会弹出,但没有提示音,状态栏中无显示
      NotificationManager.IMPORTANCE_LOW             开启通知,不会弹出,不发出提示音,状态栏中显示
      NotificationManager.IMPORTANCE_DEFAULT     开启通知,不会弹出,发出提示音,状态栏中显示
      NotificationManager. IMPORTANCE_HIGH           开启通知,会弹出,发出提示音,状态栏中显示

 

我使用了最后一种方式,问题解决。后续观察,是否会出现其他问题,未完待续.......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值