根据Notification Design Guidelines文档:
如果同一个应用发送四个或更多通知但未指定分组,系统会自动将它们分组在一起。
但是,它仅在您有4个或更多通知时才有效。当你只有两个通知时,我注意到Messenger会这样做:
所以我的问题是,我可以告诉Android总是像Messenger一样对我的通知进行分组吗?或者Messenger使用我不想使用的setGroup()
方法......
答案 0 :(得分:2)
这是可行的。
概念是创建一个用于组合通知的组通知构建器,并将相同的groupKey
应用于其他通知构建器。并致电NotificationManagerCompat.notify()
预先建立群组通知。因此,这些具有相同groupKey
的通知将组合在一起。
您可以使用NotificationCompat.Builder.setGroup("GROUP_KEY")
和NotificationCompat.Builder.setGroupSummary(true)
添加组通知构建器。
并将NotificationCompat.Builder.setGroup("GROUP_KEY")
添加到其他通知中。
val groupKey = "GROUP_KEY"
val groupBuilder = NotificationCompat.Builder(context, "CHANNEL_ID")
groupBuilder.apply {
setAutoCancel(true)
...
setGroupSummary(true)
setGroup(groupKey)
}
val builder = NotificationCompat.Builder(context, "CHANNEL_ID")
groupBuilder.apply {
setAutoCancel(true)
...
setGroup(groupKey)
}
val notificationManager = NotificationManagerCompat.from(context)
notificationManager.notify(NOTIFICATION_ID, groupBuilder.build())
notificationManager.notify(NOTIFICATION_TAG, NOTIFICATION_ID, builder.build())