我正在实施通知,并希望将它们分组以显示在通知栏中。
当前,我正在Android的官方开发人员文档中实施 Create a Group of Notifications中的示例。
我实现了这种方法:
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);
}
方法createNotificationChannel()
只是创建了频道,为便于阅读,我将其保留在此处。
现在文档说:
在Android 7.0(API级别24)及更高版本上,系统会使用每个通知中的文本片段自动为您的小组建立摘要。
因此,最后一个notify()
调用应该是可选的,并且也创建summaryNotification
。但是此示例仅在我通知摘要通知时对我有用。如果我不这样做,则通知将不分组。
这是怎么回事?
答案 0 :(得分:0)
在Android 7.0(API级别24)及更高版本上,系统会使用每个通知中的文本片段自动为您的小组建立摘要。
“摘要[文本]”,而不是“组摘要通知”。这只是意味着您以摘要通知样式设置的任何文本都将被来自Android> = N的分组通知中的组合文本替换。
这不会影响没有汇总的通知不会分组的事实。
是的,这对我来说也极具误导性,必须艰难地学习。尝试在Kitkat上建立小组,并将其与牛轧糖之一进行比较。