Benachrichtigung für Live-Updates erstellen

Das System bewirbt Benachrichtigungen zu Live-Updates. 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/Kein Stil“, 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 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 Schnelleinstellung.

  • Geeignete Verwendungszwecke:Aktive Navigation, laufende Telefonanrufe, aktives Tracking von Mitfahrgelegenheiten und aktives Tracking von Essenslieferungen.
  • Unangemessene Verwendungen:Werbung, Werbeaktionen, Chatnachrichten, Benachrichtigungen, bevorstehende 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 Umgebungsinformationen an, z. B. Informationen zur Umgebung des Nutzers, zu seinen Interessen oder zu anstehenden Terminen. 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 die 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 anderweitig 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 abstimmen, 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. Sie 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 angezeigt wird. 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.

  • 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.
  • Wenn die Zeit mehr als eine Minute in der Vergangenheit liegt, wird die Benachrichtigung nicht angezeigt.
  • Verwenden Sie setShowWhen für FALSE, wenn die Benachrichtigung im Benachrichtigungsfeld keine Zeitangabe enthalten soll.

Darstellung des Status-Chips

Der Status-Chip enthält immer ein Symbol und optional Text. Der Chip hat eine maximale Breite von 96 dp. Zeigen Sie den Text anhand der folgenden Kriterien an:

  • Wenn der Text weniger als 7 Zeichen lang ist, wird der gesamte Text 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