Android:有没有办法禁用通知捆绑?

时间:2017-02-11 00:40:14

标签: android android-notifications

我有一个应用程序,用户可以收到多个通知,告知他们需要做的事情。用户可以选择使其中一些通知持久化(我通过调用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

1 个答案:

答案 0 :(得分:9)

根据Google文档,来自同一应用的通知会自动捆绑 -

  

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

因此,在您的情况下,您可以执行的操作是,而不是使用默认分组的系统,您可以使用单独的组密钥将持续通知和非持久通知分组,将通知分为两组。

查看Google文档。 Builder.setGroup()上的方法NotificationBuilderCompat采用字符串参数作为关键字。 您可以在uilder.setGroupSummary

上调用相关方法B Builder

希望这很清楚。