强制分组通知?

时间:2017-04-06 02:56:13

标签: android notifications android-notifications

根据Notification Design Guidelines文档:

如果同一个应用发送四个或更多通知但未指定分组,系统会自动将它们分组在一起。

所以我测试了这个: enter image description here

但是,它仅在您有4个或更多通知时才有效。当你只有两个通知时,我注意到Messenger会这样做: enter image description here

所以我的问题是,我可以告诉Android总是像Messenger一样对我的通知进行分组吗?或者Messenger使用我不想使用的setGroup()方法......

1 个答案:

答案 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())