我有一个应用程序,用户可以收到多个通知,告知他们需要做的事情。用户可以选择使其中一些通知持久化(我通过调用NotificationCompat.Builder.setOngoing来实现)。至少在我的Android版本Nougat上,当我的应用程序发布了三个以上的通知时,它们被捆绑在一起作为一个通知,这使得所有这些通知在一次刷卡中对用户是不允许的。这使先前持久的通知不再持久。有没有办法以编程方式指示Android不要捆绑我的通知?
这是我用来构建通知并显示它的代码:
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_notification)
.setContentTitle(eventName + " " + notificationText)
.setDefaults(Notification.DEFAULT_ALL)
.setOnlyAlertOnce(true)
.setContentIntent(eventListPendingIntent);
if (goalInfo.goal.persistNotification) {
builder.setOngoing(true);
} else {
builder.setAutoCancel(true);
}
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(eventType.value(), builder.build());
谢谢,Nir
答案 0 :(得分:9)
根据Google文档,来自同一应用的通知会自动捆绑 -
注意:如果同一个应用发送四个或更多通知,则不会 指定分组,系统会自动将它们分组在一起。
因此,在您的情况下,您可以执行的操作是,而不是使用默认分组的系统,您可以使用单独的组密钥将持续通知和非持久通知分组,将通知分为两组。
查看Google文档。 Builder.setGroup()
上的方法NotificationBuilderCompat
采用字符串参数作为关键字。
您可以在uilder.setGroupSummary
Builder
希望这很清楚。