Android 8.0 NotificationChannel 采坑实例
Android O 上Notification的新特性: 通知通道功能 1. 简介: 通知通道功能使开发者管理自己应用的通知成为一个组或者一个通道,用户可以通过通知通道完成设置通知,如:阻止所有通知,改变某个通道通知的优先级,是不是显示launch上的小圆点。通过这些方式来提升用户体验。 2. 1. ......
Android O 上Notification的新特性: 通知通道功能
1. 简介:
通知通道功能使开发者管理自己应用的通知成为一个组或者一个通道,用户可以通过通知通道完成设置通知,如:阻止所有通知,改变某个通道通知的优先级,是不是显示launch上的小圆点。通过这些方式来提升用户体验。
2.
1. 第一步:升级sdk版本,使用android studio开发 minsdkversion的版本不能小于26。否则不能使用新特性。
2.第二部:创建工程,最好将notificationchannel 放到util里面,封装成一个单独的类进行管理。从android的意图上分析,每个应用的通知都需要进行管理,包括通知的优先级都要通过通道进行统一进行管理,可以建立important_high/ importan_default/importan_minor/importan_low 四种通道。
创建通道的方法:
// 实例化一个channel对象
NotificationChannel androidChannel = new NotificationChannel(ANDROID_CHANNEL_ID, ANDROID_CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
ANDROID_CHANNEL_ID: 通道的id
ANDROID_CHANNEL_NAME:通道的名字(这个名字很重要,后面发送通知的时候指定的通道名字就是它)
最后一个参数:此通道通知的优先级
// 创建一个通道
notificationManager.createNotificationChannel(androidChannel);
3.新建一个通知,并发送出去
// 使用新的接口创建一个builder对象,指定该通知所属于的通道
builder = new Notification.Builder(getApplicationContext(), ANDROID_CHANNEL_NAME/*channel name*/)
// 发送通知
notificationManager.notify(id, builder.build())
另外:
mNotificationManager.createNotificationChannelGroup(new NotificationChannelGroup(groupId, groupName));这个接口也非常有意思。
对于具有多种用户的app,如某些社交应用有工作帐号和私人帐号,可以将定义不同用户下所有的channel为一个group进行管理。