Android O上面Notification的一些小改变

  • 内容
  • 评论
  • 相关

当我们的应用想在Android 8.0, API level 26上面发送一个通知的时候,我们必须要给通知设置一个Channel,比如如果我们做一个IM,我们可以将用户的消息通知设置为一个Channel,将系统的其他推送设置为另一个Channel,这样用户就可以选择只接受哪一个通知,而不用像目前国产ROM一样,只能显示/隐藏整个应用的通知。

如果我们的Notification没有设置任何的Channel,那么在8.0上面是显示不出来的!会提示如下错误

新建Channel

首先实例化一个NotificationChannel 对象,ChannelID是一个字符串,注意不要太长,不然可能会被系统截断,设置好Channel的相关属性以后,使用NotificationManager.createNotificationChannel即可创建好一个Channel,然后我们创建NotificationCompat.Builder的时候将ChannelId传入即可。

如下所示,我们需要判断Android版本,因为在8.0以下是没有NotificationChannel的,不然会导致crash。

PS:可以看到,这里使用的是NotificationCompat,这样可以提高兼容性

删除Channel

跳转到通知渠道设置

新建渠道组

Android O同样允许我们为几个Channel设置一个组,代码同样很简单。

然后将Channel与渠道组相绑定。

8.0上通知不停震动以及响铃

我们在创建NotificationChannel的时候使用的NotificationManager.IMPORTANCE_DEFAULT,这样系统会响铃以及震动,我们可以设置为NotificationManager.IMPORTANCE_LOW

参考链接:官方文档 、 其他

评论

0条评论

发表评论

电子邮件地址不会被公开。