没有摘要的通知组无法工作

unl*_*101 5 android android-notifications

我正在实施通知并希望将它们分组以在通知栏中显示。

目前,我正在实施Android 官方开发人员文档中 创建一组通知中的示例。

我实现了这个方法:

private void makeNotification()
{
    createNotificationChannel();

    int SUMMARY_ID = 0;
    String GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL";
    String CHANNEL_ID = "MY_CHANNEL_ID";

    Notification newMessageNotification1 =
            new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
                    .setSmallIcon(R.drawable.ic_map_position_icon)
                    .setContentTitle("First summary")
                    .setContentText("You will not believe...")
                    .setGroup(GROUP_KEY_WORK_EMAIL)
                    .build();

    Notification newMessageNotification2 =
            new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
                    .setSmallIcon(R.drawable.ic_map_nav_position_icon_grey)
                    .setContentTitle("Second summary")
                    .setContentText("Please join us to celebrate the...")
                    .setGroup(GROUP_KEY_WORK_EMAIL)
                    .build();

    Notification summaryNotification =
            new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
                    .setContentTitle("Total summary")
                    .setContentText("Two new messages")
                    .setSmallIcon(R.drawable.ic_wdw_dont_drive)
                    .setGroup(GROUP_KEY_WORK_EMAIL)
                    .setGroupSummary(true)
                    .build();

    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);

    notificationManager.notify(1, newMessageNotification1);
    notificationManager.notify(2, newMessageNotification2);
    notificationManager.notify(SUMMARY_ID, summaryNotification);
}
Run Code Online (Sandbox Code Playgroud)

该方法createNotificationChannel()只是创建通道,为了更好的可读性,我把它留在这里。

现在文档说:

在 Android 7.0(API 级别 24)及更高版本上,系统会使用每个通知中的文本片段自动为您的群组构建摘要。

所以最后一个notify()调用应该是可选的,并且也创建summaryNotification。但是这个例子只在我通知摘要通知时对我有用。当我不这样做时,通知不会分组。

这里出了什么问题?

Kan*_*ias 6

在 Android 7.0(API 级别 24)及更高版本上,系统使用每个通知中的文本片段自动为您的组构建摘要。

“摘要[文本]”而不是“组摘要通知”。这仅意味着您在摘要通知样式中设置的任何文本都将被 Android >= N 的分组通知中的组合文本替换。

这不会影响通知不会在没有摘要的情况下分组的事实。

是的,这对我来说也有很​​大的误导,必须经过艰苦的努力才能学会。尝试在 Kitkat 上建立一个小组,并将其与 Nougat 小组进行比较。