Benachrichtigungen bei Livemeldungen erstellen

Livemeldungen bieten eine Zusammenfassung wichtiger Updates, damit Nutzer den Fortschritt verfolgen können, ohne die App zu öffnen. Das System stuft Livemeldungen hoch. Nutzer können sie jedoch vorübergehend schließen oder auf eine Standardbenachrichtigung herabstufen. Hochgestufte Benachrichtigungen werden auf Systemoberflächen auffälliger angezeigt, z. B. oben in der Benachrichtigungsleiste und auf dem Sperrbildschirm sowie als Chip in der Statusleiste. Livemeldungen sollten den Benachrichtigungsprinzipien folgen, um kurze, zeitnahe und relevante Informationen zu liefern.

Abbildung 1. Beispiel für eine Livemeldung

Hochgestufte Benachrichtigungskarten haben folgende Merkmale:

  • Standardmäßig maximiert
  • Nicht minimierbar

Damit eine Benachrichtigung als Livemeldung gilt, muss sie die folgenden Anforderungen erfüllen:

Merkmale der Hochstufung

Mit den folgenden APIs kannst du festlegen, ob das System deine Benachrichtigung hochstuft:

  • Notification.FLAG_PROMOTED_ONGOING gibt an, ob die Benachrichtigung hochgestuft wird.
  • Notification.hasPromotableCharacteristics() prüft, ob das System die Benachrichtigung hochstufen kann. Bei dieser Methode wird nicht berücksichtigt, ob der Nutzer Livemeldungen für die App in den Einstellungen deaktiviert hat.
  • NotificationManager.canPostPromotedNotifications() prüft, ob deine App eine hochgestufte Benachrichtigung senden kann, z. B. wenn der Nutzer sie in den Einstellungen aktiviert oder deaktiviert hat.
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS ist die Intent-Aktion, mit der Apps Nutzer zu den Einstellungen weiterleiten können, um diese Funktion zu aktivieren.

Nutzungskriterien

Verwende Livemeldungen für Aktivitäten, die aktiv, vom Nutzer initiiert und zeitkritisch sind.

Abbildung 2. Eine Livemeldung auf dem Start- und Sperrbildschirm und als Chip

Aktiv

Eine Livemeldung muss eine Aktivität darstellen, die aktiv ausgeführt wird und einen bestimmten Start- und Endzeitpunkt hat. Wenn eine Aktivität in der Vergangenheit stattfindet, verwende keine Livemeldung. Verwende stattdessen eine Standardbenachrichtigung. Das gilt auch für Ereignisse, die noch nicht begonnen haben. Für Ereignisse, die bald beginnen, kann jedoch eine Livemeldung verwendet werden.

Livemeldungen stellen aktive Aktivitäten dar. Verwende keine Livemeldungen, um einen schnelleren Zugriff auf App-Funktionen zu ermöglichen. Verwende stattdessen ein App-Widget oder eine benutzerdefinierte Kachel für die Schnelleinstellungen.

  • Geeignete Anwendungsfälle:Aktive Navigation, laufende Telefonanrufe, aktive Mitfahrgelegenheits- und Essenslieferungsverfolgung
  • Ungeeignete Anwendungsfälle:Anzeigen, Angebote, Chatnachrichten, Benachrichtigungen, anstehende Kalenderereignisse und schneller Zugriff auf App-Funktionen

Vom Nutzer initiiert

Die meisten Livemeldungen sollten Aktivitäten darstellen, die explizit vom Nutzer ausgelöst werden, z. B. das Starten eines Workouts, das Starten der Navigation oder das Anfordern einer Mitfahrgelegenheit. Zeige in einer Livemeldung keine Umgebungsinformationen wie die Umgebung, Interessen oder anstehende Ereignisse des Nutzers an. Lasse nicht zu, dass Aktivitäten, die von anderen Parteien ausgelöst werden, Livemeldungen generieren.

Manchmal führt ein Nutzer eine Aktion aus, die eine Aktivität für eine bestimmte Zeit in der Zukunft initiiert. Beispielsweise wenn der Nutzer Tickets für einen Flug oder ein Konzert kauft, sich für ein Turnier anmeldet oder auf andere Weise seine zukünftige Teilnahme an einem zeitkritischen Ereignis angibt. In diesen Fällen kann es sinnvoll sein, automatisch eine Livemeldung anzuzeigen, wenn das geplante Ereignis beginnt. Apps müssen jedoch ihre Trigger so anpassen, dass sie nur angezeigt werden, wenn die Aktivität unmittelbar bevorsteht. Wenn der Nutzer explizit angibt, dass er ein Hintergrundereignis wie ein Sportereignis verfolgen möchte, kannst du Livemeldungen für dieses Ereignis senden. Du solltest jedoch auch die Aktion Anheften aufheben in die zugehörige Benachrichtigung einfügen.

Zeitkritisch

Zeige eine Livemeldung nur an, wenn die Aufmerksamkeit des Nutzers während der gesamten Aktivität erforderlich ist. Ein wichtiger Anwendungsfall für Livemeldungen ist die Überwachung, bei der der Nutzer einen erheblichen Vorteil hat, wenn er einen Blick auf die Livemeldung wirft, um den sich entwickelnden Status der Aktivität im Auge zu behalten.

Eine Livemeldung ist oft für Aktivitäten geeignet, die zwischen Livemeldungen und normalen Benachrichtigungen wechseln. Beispielsweise ist es sinnvoll, viele Stunden vor dem Flug eines Nutzers eine Benachrichtigung über die Bordkarte anzuzeigen. Die Benachrichtigung sollte jedoch erst dann zu einer Livemeldung werden, wenn der Nutzer dringend etwas tun muss, z. B. wenn er am Flughafen oder Veranstaltungsort angekommen ist oder wenn das Boarding begonnen hat. Im Gegensatz dazu ist eine Livemeldung nicht geeignet, um ein Paket zu verfolgen, da der Nutzer dies nicht ständig im Auge behalten muss.

UX-Best Practices

Verwende das Trackersymbol, um den Status zu visualisieren. Es kann dynamisch aktualisiert werden.

Benutzerdefinierter Tracker in einer Fortschrittsanzeige
Abbildung 3. Ein benutzerdefiniertes Trackersymbol

Wenn eine voraussichtliche Ankunftszeit berechnet wird oder noch nicht verfügbar ist, zeige keinen leeren Status an. Gib aktiven Platzhaltertext wie „Wird berechnet…“ oder „Route wird neu berechnet…“ an, um anzugeben, dass das System arbeitet, wie im Beispiel gezeigt.

Nicht leerer Status, der anzeigt, dass das Gerät überlegt
Abbildung 4. Ein nicht leerer Status für deine Livemeldung

Status-Chips

Mit Status-Chips können Nutzer Livemeldungen im Blick behalten, wenn die Benachrichtigung nicht sichtbar ist. Verwende setShortCriticalText oder setWhen, um wichtige Statusinformationen zu deiner fortschrittsorientierten Benachrichtigung zu vermitteln.

Status-Chip mit Symbol
Abbildung 5. Im unbestimmten Status wird das kleine Symbol Notification.Builder#setSmallIcon angezeigt.
Status-Chip mit Uhrzeit
Abbildung 6. Verwende Notification.Builder#setShortCriticalText, um die absolute Zeit anzuzeigen.
Status-Chip mit Informationen
Abbildung 7. Verwende Notification.Builder#setShortCriticalText, um wichtige Informationen zu vermitteln.

Zeitpunkt

Der Zeitpunkt löst einen Countdown für die Lebensdauer der Benachrichtigung aus, es sei denn, die Benachrichtigung wird geschlossen oder aktualisiert. In den folgenden Aufzählungszeichen wird beschrieben, wie der Zeitpunkt in verschiedenen Situationen funktioniert:

  • Der Zeitpunkt liegt mindestens 2 Minuten in der Zukunft: Wenn die aktuelle Zeit 10:05 Uhr ist und der Zeitpunkt auf 10:10 Uhr festgelegt ist, wird im Chip 5 Min. angezeigt.
  • Der Zeitpunkt liegt in der Vergangenheit: Der Text wird nicht angezeigt.
  • Im Chip kann ein Timer angezeigt werden, wenn du Chronometer für den Zeitpunkt verwendest. Weitere Informationen findest du unter setUsesChronometer und setChronometerCountdown. Der Chronometer-Timer wird im Chip angezeigt, solange er positiv ist.
  • Du möchtest den Zeitpunkt nicht in deiner Benachrichtigung anzeigen: Verwende setShowWhen für FALSE.

Aussehen des Status-Chips

Der Status-Chip enthält immer ein Symbol und optional Text. Der Chip hat eine maximale Breite von 96 dp. Der Text wird nur angezeigt, wenn der gesamte Text in den Chip passt. Die Textanzeige hängt von den folgenden Kriterien ab:

  • Wenn weniger als 7 Zeichen vorhanden sind, wird der gesamte Text angezeigt.
  • Wenn weniger als die Hälfte des Texts angezeigt wird, wird nur das Symbol angezeigt.
  • Wenn mehr als die Hälfte des Texts angezeigt wird, wird so viel Text wie möglich angezeigt.

Wear OS

Livemeldungen werden auf einige verbundene Wear OS-Geräte übertragen. Eine Anleitung zu diesem Übertragungsverhalten sowie eine Anleitung zum Erstellen lokaler Livemeldungen für Wear OS findest du in der Anleitung zu Livemeldungen für Wear OS.

Dismissal

Nutzer können die Sichtbarkeit von Benachrichtigungen in der Benachrichtigungsleiste steuern. Wenn unerwünschte Livemeldungen gesendet werden, können Nutzer die Berechtigung einer App zum Senden von Benachrichtigungen widerrufen.

Damit Nutzer Livemeldungen nicht vollständig deaktivieren, solltest du keine Meldungen senden, die Nutzer schließen könnten. Sende keine Livemeldungen noch einmal, die der Nutzer geschlossen hat. Verwende setDeleteIntent, um geschlossene Meldungen zu erkennen.

In der Beispiel-App kannst du mit diesen APIs experimentieren.

FAQ

Frage:Was ist der weiße Punkt am Ende des Fortschrittsbalkens?

Ende der Fortschrittsanzeige für Bedienungshilfen
Abbildung 8. Visualisierung der Bedienungshilfen am Ende der Reise

Antwort:Der weiße Punkt am Ende des Fortschrittsbalkens kennzeichnet das Ende des Fortschrittsbalkens.

Frage:Warum werden benutzerdefinierte Benachrichtigungen für Livemeldungen nicht unterstützt?

Antwort:Benutzerdefinierte Benachrichtigungen erschweren konsistente Tests und die UX, da sich ihr Verhalten je nach Android-Version und Gerätehersteller erheblich unterscheidet. Verwende keine benutzerdefinierten Benachrichtigungen mit RemoteViews.