Benachrichtigung für Live-Updates erstellen

Das System bewirbt Benachrichtigungen zu Livemeldungen. Beworbene Benachrichtigungen werden auf Systemoberflächen deutlicher angezeigt, z. B. oben in der Benachrichtigungsleiste und auf dem Sperrbildschirm sowie als Chip in der Statusleiste.

Abbildung 1: Beispiel für eine Benachrichtigung zu Live-Updates

Karten für beworbene Benachrichtigungen haben die folgenden Eigenschaften:

  • Standardmäßig maximiert
  • Nicht minimierbar

Ihre Benachrichtigung muss die folgenden Anforderungen erfüllen, um als Live-Update zu gelten:

  • Muss „Standard Style“ (Standardstil), BigTextStyle, CallStyle oder ProgressStyle sein.
  • Die folgende Berechtigung, die nicht zur Laufzeit angefordert wird, muss im Android-Manifest angefordert werden: android.permission.POST_PROMOTED_NOTIFICATIONS.
  • Sie müssen die Promotion mit EXTRA_REQUEST_PROMOTED_ONGOING oder NotificationCompat.Builder#requestPromotedOngoing anfordern.
  • Muss ongoing sein (FLAG_ONGOING_EVENT festlegen).
  • Muss eine contentTitle enthalten.
  • Es darf KEINE customContentView festgelegt sein (kein RemoteViews).
  • Darf NICHT die Zusammenfassung einer Gruppe mit setGroupSummary sein.
  • Darf NICHT setColorized auf TRUE gesetzt werden.
  • Der Benachrichtigungskanal darf NICHT IMPORTANCE_MIN haben.

Merkmale von Promotions

Die folgenden APIs helfen Ihnen dabei, festzustellen, ob das System Ihre Benachrichtigung hervorhebt:

  • Notification.FLAG_PROMOTED_ONGOING gibt an, ob die Benachrichtigung beworben wird.
  • Notification.hasPromotableCharacteristics() prüft, ob das System die Benachrichtigung hochstufen kann. Bei dieser Methode wird nicht berücksichtigt, ob der Nutzer Live-Updates für die App in den Einstellungen deaktiviert hat.
  • NotificationManager.canPostPromotedNotifications() prüft, ob Ihre App eine Werbenachricht posten kann, z. B. ob 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

Verwenden Sie Live-Updates für Aktivitäten, die gerade laufen, vom Nutzer initiiert wurden und zeitkritisch sind.

Aktiv

Ein Live-Update muss eine Aktivität darstellen, die gerade läuft und einen eindeutigen Beginn und ein eindeutiges Ende hat. Wenn eine Aktivität in der Vergangenheit stattgefunden hat, sollten Sie kein Live-Update verwenden. Verwenden Sie stattdessen eine Standardbenachrichtigung. Das gilt auch für Veranstaltungen, die noch nicht begonnen haben. Bei Veranstaltungen, die bald beginnen, kann jedoch ein Live-Update verwendet werden.

Live-Updates stellen laufende Aktivitäten dar. Verwenden Sie keine Live-Updates, um beschleunigten Zugriff auf App-Funktionen zu ermöglichen. Wenn Sie das tun möchten, verwenden Sie ein App-Widget oder eine benutzerdefinierte Kachel für die Schnelleinstellungen.

  • Geeignete Verwendungszwecke:Aktive Navigation, laufende Telefonanrufe, aktives Tracking von Mitfahrgelegenheiten und aktives Tracking von Essenslieferungen.
  • Unangemessene Verwendungen:Werbung, Werbeaktionen, Chatnachrichten, Benachrichtigungen, anstehende Kalenderereignisse und Schnellzugriff auf App-Funktionen.

Von Nutzern initiiert

Die meisten Live-Updates sollten Aktivitäten darstellen, die explizit vom Nutzer ausgelöst werden, z. B. das Starten eines Trainings, das Starten der Navigation oder das Bestellen eines Fahrdienstes. Zeigen Sie in einem Live-Update keine Umgebungsdaten an, z. B. Informationen zur Umgebung, zu den Interessen oder zu anstehenden Terminen des Nutzers. Aktivitäten, die von anderen Parteien ausgelöst werden, dürfen keine Live-Updates generieren.

Manchmal führt ein Nutzer eine Aktion aus, die eine Aktivität für einige Zeit in der Zukunft initiiert. Das ist beispielsweise der Fall, 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 ein Live-Update anzuzeigen, wenn die geplante Veranstaltung beginnt. Apps müssen ihre Trigger jedoch so anpassen, dass sie nur angezeigt werden, wenn die Aktivität unmittelbar bevorsteht. Wenn der Nutzer explizit angibt, dass er ein Hintergrundereignis wie ein Sportspiel beobachten möchte, können Sie mit dem Posten von Live-Updates für dieses Ereignis beginnen. Sie sollten jedoch auch die Aktion Unpin in die zugehörige Benachrichtigung aufnehmen.

Zeitkritisch

Zeigen Sie eine Live-Aktualisierung nur an, wenn sie während der gesamten Aktivität die Aufmerksamkeit des Nutzers erfordert. Ein wichtiger Anwendungsfall für Live-Updates ist die Überwachung, bei der der Nutzer einen erheblichen Vorteil daraus zieht, sich das Live-Update anzusehen, um den sich entwickelnden Status der Aktivität im Blick zu behalten.

Ein Live-Update ist oft für Aktivitäten geeignet, die zwischen Live-Updates und normalen Benachrichtigungen wechseln. Eine Benachrichtigung mit einer Bordkarte ist beispielsweise viele Stunden vor dem Flug eines Nutzers angemessen. Die Benachrichtigung sollte jedoch erst dann zu einem Live-Update werden, wenn der Nutzer ein dringendes Bedürfnis hat, z. B. wenn er am Flughafen oder Veranstaltungsort angekommen ist oder das Boarding begonnen hat. Ein Live-Update ist dagegen nicht geeignet, um ein Paket zu verfolgen, da der Nutzer dies nicht ständig im Blick behalten muss.

Status-Chips

Mit Status-Chips können Nutzer Live-Updates im Blick behalten, wenn die Benachrichtigung nicht sichtbar ist. Verwenden Sie setShortCriticalText oder setWhen, um wichtige Statusinformationen zu Ihrer fortschrittsorientierten Benachrichtigung zu übermitteln.

Status-Chip mit Symbol
Abbildung 2. Im unbestimmten Status wird das kleine Symbol Notification.Builder#setSmallIcon
angezeigt.
Status-Chip mit Uhrzeit
Abbildung 3. Verwenden Sie Notification.Builder#setShortCriticalText, um die absolute Zeit anzuzeigen.
Status-Chip mit Informationen
Abbildung 4. Verwenden Sie Notification.Builder#setShortCriticalText, um wichtige Informationen zu vermitteln.

Wann

Die „when“-Zeit löst einen Countdown für die Lebensdauer der Benachrichtigung aus, sofern die Benachrichtigung nicht geschlossen oder aktualisiert wird. Im Folgenden wird beschrieben, wie die Zeit in verschiedenen Situationen funktioniert:

  • Die Uhrzeit liegt mindestens 2 Minuten in der Zukunft: Wenn die aktuelle Uhrzeit 10:05 Uhr ist und die Uhrzeit auf 10:10 Uhr festgelegt ist, wird auf dem Chip 5 Min. angezeigt.
  • Die Zeitangabe „when“ liegt mehr als eine Minute in der Vergangenheit: Die Benachrichtigung wird nicht angezeigt.
  • Wenn Sie Chronometer für die Zeit verwenden, kann im Chip ein Timer angezeigt werden. Weitere Informationen finden Sie unter setUsesChronometer und setChronometerCountdown. Der Chronometer-Timer wird im Chip angezeigt, solange er positiv ist.
  • Sie möchten die Uhrzeit nicht in der Benachrichtigung anzeigen lassen: Verwenden Sie setShowWhen bis FALSE.

Darstellung 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 er vollständig in den Chip passt. Der Text wird abhängig von den folgenden Kriterien angezeigt:

  • Wenn der Text weniger als 7 Zeichen lang ist, wird er vollständig angezeigt.
  • Wenn weniger als die Hälfte des Texts angezeigt wird, zeigen Sie nur das Symbol an.
  • Wenn mehr als die Hälfte des Texts angezeigt wird, zeigen Sie so viel Text wie möglich an.

Dismissal

Nutzer können die Sichtbarkeit von Benachrichtigungen im Benachrichtigungsfeld steuern. Wenn Sie unerwünschte Live-Updates posten, kann es passieren, dass Nutzer die Berechtigung zum Posten für eine App widerrufen.

Wenn Sie verhindern möchten, dass Nutzer Livemeldungen vollständig deaktivieren, sollten Sie keine Updates posten, die Nutzer möglicherweise schließen. Posten Sie keine Livemeldungen noch einmal, die der Nutzer geschlossen hat. Verwenden Sie setDeleteIntent, um verworfene Updates zu erkennen.

Beispiel-App