Мое приложение создает 2 канала уведомлений (Другие действия и Действия пользователя). Кнопки Уведомление о статусе и Уведомление пользователя публикуют уведомления по следующим выделенным каналам:


Что я понял: после того, как мое приложение отправляет 2 уведомления в отдельные группы и каналы, следующая последовательность:
- Уведомление 1 опубликовано и отображается в строке состояния (1 значок «предупреждения» теперь в строке состояния):

- Уведомление 2 опубликовано и отображается в строке состояния (2 значка «предупреждение» теперь в строке состояния):

- Через несколько секунд Notification1 и Notification2 объединяются (складываются друг на друга, сгруппированы) вместе в строке состояния (теперь в строке состояния 1 значок)

Посмотрите этот этап «объединения» со скриншотами:


Сначала Я думал, что это что-то с Android16 или OneUI8.
Но позже я понял, что многие приложения (например, Viber) имеют аналогичную «многоканальную» конфигурацию уведомлений, и их уведомления не объединяются. Например, канал A не объединяется с каналом B.
Итак, давайте посмотрим, как я создаю эти каналы уведомлений и уведомления:
Регистрация канала уведомлений:
Код: Выделить всё
mNotificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel lNotificationUserActionChannel = new NotificationChannel(
"USERACTION_NOTIFICATION",
"User actions",
NotificationManager.IMPORTANCE_DEFAULT);
NotificationChannel lNotificationStatusChangeChannel = new NotificationChannel(
"OTHER_NOTIFICATION",
"Other actions",
NotificationManager.IMPORTANCE_DEFAULT);
mNotificationManager.createNotificationChannel(lNotificationUserActionChannel);
mNotificationManager.createNotificationChannel(lNotificationStatusChangeChannel);
Код: Выделить всё
public void postNotification(int id) {
Notification notification = new NotificationCompat.Builder(context, 0==id? "USERACTION_NOTIFICATION" : "OTHER_NOTIFICATION")
.setContentTitle(0==id ? "New mention" : "New reaction")
.setTicker("Ticker")
.setSmallIcon(R.drawable.ic_warning_sign_notification)
.setContentText("Text")
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setGroup(0==id ? "group_mentions" : "group reactions")
.build();
mNotificationManager.notify(new Random().nextInt(), notification);
}
setRequestedFrameRateframeRate=-2.0,
this=StatusBarIconView(slot='net.mytestsw.notificationtester/0x0'
alpha=1.0 icon=StatusBarIcon(icon=Icon(typ=RESOURCE
pkg=net.mytestsw.notificationtester id=0x7f0800d8) видимый пользователь=0 )
visibleState=ICON iconColor=#ff1b6cf7 staticDrawableColor=#ff1b6cf7
decorColor=#ff1b6cf7 анимацииStartColor=#0 currentSetColor=#ff1b6cf7
notification=StatusBarNotification(pkg=net.mytestsw.notificationtester
user=UserHandle{0} id=0
tag=0|net.mytestsw.notificationtester|g:Aggregate_NormalNotificationSection
key=0|net.mytestsw.notificationtester|0|0|net.mytestsw.notificationtester|g:Aggregate_NormalNotificationSection|10720|0|net.mytestsw.notificationtester|g:Aggregate_NormalNotificationSection:
Notification(channel=OTHER_NOTIFICATION ярлык=null contentView=null
vibrate=null sound=null defaults=0
flags=LOCAL_ONLY|GROUP_SUMMARY|AUTOGROUP_SUMMARY color=0x00000000
groupKey=0|net.mytestsw.notificationtester|g:Aggregate_NormalNotificationSection
vis=PRIVATE semFlags=0x0 semPriority=0 semMissedCount=0))),
caller=com.android.systemui.statusbar.StatusBarIconView.onAttachedToWindow:6 android.view.View.dispatchAttachedToWindow:24320
android.view.ViewGroup.addViewInner:5582
android.view.ViewGroup.addView:5358
com.android.systemui.statusbar.phone.LegacyNotificationIconAreaControllerImpl.updateIconsForLayout:468
Что привлекло мое внимание: Aggregate_NormalNotificationSection. Но я не могу найти ничего об этом в Google.
Итак, мне интересно, как обстоят дела у других приложений? Что мне сделать, чтобы предотвратить объединение моих каналов уведомлений?
Подробнее здесь: https://stackoverflow.com/questions/798 ... d-behavior
Мобильная версия