Benachrichtigungsgruppe erstellen

Ab Android 7.0 (API-Level 24) kannst du zugehörige Benachrichtigungen anzeigen in einer Gruppe. Wenn Ihre App beispielsweise Benachrichtigungen für empfangene E-Mails anzeigt, geben Sie alle Benachrichtigungen für neue E-Mail-Nachrichten in derselben Gruppe, sodass sie minimiert werden miteinander verbinden.

Um ältere Versionen zu unterstützen, fügen Sie eine zusammenfassende Benachrichtigung hinzu, die allein angezeigt wird. Benachrichtigungen zusammenfassen. Dies geschieht am besten mit der Benachrichtigung im Posteingangsstil.

Abbildung 1: Eine minimierte (oben) und eine maximierte (unten) Benachrichtigungsgruppe.

Verwenden Sie Benachrichtigungsgruppen, wenn alle der folgenden Bedingungen auf Ihre Verwendung zutreffen Fall:

  • Bei den Benachrichtigungen des Kindes handelt es sich um vollständige Benachrichtigungen, die angezeigt werden können ohne eine Gruppenzusammenfassung zu erstellen.

  • Es hat einen Vorteil, wenn die Benachrichtigungen für Kinder einzeln angezeigt werden. Für Beispiel:

    • Sie sind entscheidungsrelevant und umfassen für jede Benachrichtigung spezifische Aktionen.

    • Jede Benachrichtigung enthält weitere Informationen für den Nutzer.

Wenn Ihre Benachrichtigungen die oben genannten Kriterien nicht erfüllen, eine vorhandene Benachrichtigung aktualisieren, oder die Erstellung eines Nachrichtenstils Benachrichtigung zum Einblenden mehrere Updates in derselben Unterhaltung.

Gruppe erstellen und eine Benachrichtigung hinzufügen

Definieren Sie einen eindeutigen ID-String für die Gruppe, um eine Benachrichtigungsgruppe zu erstellen. Rufen Sie dann für jede Benachrichtigung, die Sie in der Gruppe haben möchten, setGroup(), und übergeben den Gruppennamen. Beispiel:

Kotlin

val GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL"

val newMessageNotification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_mail)
        .setContentTitle(emailObject.getSenderName())
        .setContentText(emailObject.getSubject())
        .setLargeIcon(emailObject.getSenderAvatar())
        .setGroup(GROUP_KEY_WORK_EMAIL)
        .build()

Java

String GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL";

Notification newMessageNotification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_mail)
        .setContentTitle(emailObject.getSenderName())
        .setContentText(emailObject.getSubject())
        .setLargeIcon(emailObject.getSenderAvatar())
        .setGroup(GROUP_KEY_WORK_EMAIL)
        .build();

Standardmäßig werden Benachrichtigungen danach sortiert, wann sie veröffentlicht wurden. Sie können jedoch können Sie die Reihenfolge ändern, indem Sie setSortKey()

Wenn Benachrichtigungen für die Gruppe einer Benachrichtigung von einem anderen Benachrichtigung, Anruf setGroupAlertBehavior() Wenn Sie beispielsweise möchten, dass nur die Zusammenfassung Ihrer Gruppe Rauschen erzeugt, werden alle Untergeordnete Elemente in der Gruppe müssen die Gruppenbenachrichtigungen GROUP_ALERT_SUMMARY Die anderen Optionen sind GROUP_ALERT_ALL und GROUP_ALERT_CHILDREN

Gruppenzusammenfassung festlegen

Gruppierte Benachrichtigungen müssen eine zusätzliche Benachrichtigung haben, die als Gruppe fungiert Zusammenfassung. Um gruppierte Benachrichtigungen zu aktivieren, müssen Sie eine Gruppenzusammenfassung festlegen. Dieses Die Gruppenzusammenfassung muss einen Teil des Texts aus den anderen Benachrichtigungen enthalten. damit die Nutzenden verstehen, was sich in der Gruppe befindet. Wie die Gruppe Zusammenfassung, die angezeigt wird, hängt von der Android-Version ab:

  • Unter Android-Versionen vor 7.0 (API-Level 24), bei denen keine verschachtelten eine Gruppe von Benachrichtigungen erhalten, zeigt das System nur und blendet alle anderen aus. Der Nutzer kann auf die Gruppenzusammenfassung tippen Benachrichtigung, um die App zu öffnen.

  • Unter Android 7.0 und höher zeigt das System Ihre Benachrichtigung mit einer Gruppenzusammenfassung an. als verschachtelte Gruppe von Benachrichtigungen, die mit Text-Snippets aus den einzelnen gruppierte Benachrichtigung. Der Text, den Sie für die Gruppe festgelegt haben, wird nicht angezeigt. zusammenfassende Benachrichtigung. Der Nutzer kann die verschachtelte Benachrichtigungsgruppe maximieren. um die einzelnen Benachrichtigungen in der Gruppe anzuzeigen (siehe Abbildung 1).

Auch wenn in neueren Android-Versionen der Text der Gruppenzusammenfassung nicht angezeigt wird, müssen Sie eine Zusammenfassung immer manuell festlegen, Benachrichtigungen. Das Verhalten der Gruppenzusammenfassung kann je nach Gerät variieren z. B. Wearables. Wenn Sie Rich Content in Ihrer Gruppenzusammenfassung einrichten, die die beste Nutzererfahrung auf allen Geräten und Versionen bieten.

So fügen Sie eine Gruppenzusammenfassung hinzu:

  1. Erstelle eine neue Benachrichtigung mit einer Beschreibung der Gruppe – am besten mit dem Posteingangsstil Benachrichtigung.

  2. Fügen Sie der Gruppe die zusammenfassende Benachrichtigung hinzu, indem Sie setGroup() aufrufen.

  3. Geben Sie an, dass er als Gruppenzusammenfassung verwendet werden muss, indem Sie folgenden Befehl aufrufen: setGroupSummary(true)

Der folgende Code zeigt ein Beispiel für das Erstellen einer Gruppenzusammenfassung:

Kotlin

// Use constant ID for notifications used as group summary.
val SUMMARY_ID = 0
val GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL"

val newMessageNotification1 = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notify_email_status)
        .setContentTitle(emailObject1.getSummary())
        .setContentText("You will not believe...")
        .setGroup(GROUP_KEY_WORK_EMAIL)
        .build()

val newMessageNotification2 = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notify_email_status)
        .setContentTitle(emailObject2.getSummary())
        .setContentText("Please join us to celebrate the...")
        .setGroup(GROUP_KEY_WORK_EMAIL)
        .build()

val summaryNotification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setContentTitle(emailObject.getSummary())
        // Set content text to support devices running API level < 24.
        .setContentText("Two new messages")
        .setSmallIcon(R.drawable.ic_notify_summary_status)
        // Build summary info into InboxStyle template.
        .setStyle(NotificationCompat.InboxStyle()
                .addLine("Alex Faarborg Check this out")
                .addLine("Jeff Chang Launch Party")
                .setBigContentTitle("2 new messages")
                .setSummaryText("janedoe@example.com"))
        // Specify which group this notification belongs to.
        .setGroup(GROUP_KEY_WORK_EMAIL)
        // Set this notification as the summary for the group.
        .setGroupSummary(true)
        .build()

NotificationManagerCompat.from(this).apply {
    notify(emailNotificationId1, newMessageNotification1)
    notify(emailNotificationId2, newMessageNotification2)
    notify(SUMMARY_ID, summaryNotification)
}

Java

// Use constant ID for notifications used as group summary.
int SUMMARY_ID = 0;
String GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL";

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

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

Notification summaryNotification =
    new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
        .setContentTitle(emailObject.getSummary())
        // Set content text to support devices running API level < 24.
        .setContentText("Two new messages")
        .setSmallIcon(R.drawable.ic_notify_summary_status)
        // Build summary info into InboxStyle template.
        .setStyle(new NotificationCompat.InboxStyle()
                .addLine("Alex Faarborg  Check this out")
                .addLine("Jeff Chang    Launch Party")
                .setBigContentTitle("2 new messages")
                .setSummaryText("janedoe@example.com"))
        // Specify which group this notification belongs to.
        .setGroup(GROUP_KEY_WORK_EMAIL)
        // Set this notification as the summary for the group.
        .setGroupSummary(true)
        .build();

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(emailNotificationId1, newMessageNotification1);
notificationManager.notify(emailNotificationId2, newMessageNotification2);
notificationManager.notify(SUMMARY_ID, summaryNotification);

Die Benachrichtigungs-ID der Zusammenfassung muss unverändert bleiben, damit sie nur einmal gepostet und damit Sie sie später aktualisieren können, falls sich die Informationen in der Zusammenfassung ändern. Im Anschluss Ergänzungen der Gruppe müssen dazu führen, dass die vorhandene Zusammenfassung aktualisiert wird.

Beispielcode, der Benachrichtigungen verwendet, finden Sie auf der Seite Android-Benachrichtigungen Leseprobe .

Automatische Gruppierung

Unter Android 7.0 (API-Level 24) und höher, wenn Ihre App vier oder mehr sendet und keinen Gruppenschlüssel oder eine Gruppenzusammenfassung angibt, automatisch gruppieren. Gruppierte Benachrichtigungen werden automatisch mit einer Benachrichtigung über eine Gruppenzusammenfassung, die Text-Snippets aus einigen der gruppierte Benachrichtigungen. Der Nutzer kann diese Zusammenfassungsbenachrichtigung maximieren, um wie bei manuell gruppierten Benachrichtigungen.

Das Verhalten der automatischen Gruppierung kann auf einigen Gerätetypen variieren. Um das bestmögliche auf allen Geräten und Versionen. Wenn Sie wissen, dass Benachrichtigungen gruppiert werden soll, geben Sie einen Gruppenschlüssel und eine Gruppenzusammenfassung an, um sicherzustellen, dass sie gruppiert werden.