Fortschrittsorientierte Benachrichtigung erstellen

Fortschrittsbasierte Benachrichtigung in der oberen Leiste
Abbildung 1. Oben auf dem Display wird eine fortschrittsbasierte Benachrichtigung angezeigt.

In Android 16 wird eine neue Benachrichtigungsvorlage eingeführt, mit der Nutzer von ihnen initiierte Reisen von Anfang bis Ende nahtlos verfolgen können. Diese Benachrichtigungen werden auf Systemoberflächen besser sichtbar und in der Benachrichtigungsleiste ganz oben angezeigt.

Verwenden Sie Notification.ProgressStyle, um fortschrittsbasierte Benachrichtigungen zu gestalten. Zu den wichtigsten Anwendungsfällen gehören Fahrdienste, Lieferdienste und Navigation. Innerhalb dieser Klasse können Sie mithilfe von Punkten und Segmenten Status und Meilensteine im Nutzerverlauf angeben.

Relevante Klassen

Die folgenden Klassen enthalten die verschiedenen APIs, die Sie zum Erstellen einer ProgressStyle-Benachrichtigung verwenden:

Anatomie und Anpassung

Die folgenden Bilder zeigen die verschiedenen Teile, aus denen ProgressStyle-Benachrichtigungen bestehen:

Abbildung 2:

A. Kopfzeile – Untertext

Notification.Builder#setSubText()

B. Header – Zeit

Notification.Builder#setWhen()

C. Titel des Inhalts

Notification.Builder#setContentTitle()

D. Content-Text

Notification.Builder#setContentText()

E. Fortschrittsanzeige

Notification.ProgressStyle

F. Aktionsbutton

Notification.Builder#addAction()

Abbildung 3. Apps können ein Fahrzeugbild für das Trackersymbol festlegen und Segmente und Punkte verwenden, um die Mitfahrgelegenheit und Meilensteine darzustellen.

Best Practices

Verwenden Sie die richtigen APIs und folgen Sie den Best Practices, um eine optimale Nutzererfahrung bei Fortschrittsaktualisierungen zu bieten.

  • Legen Sie die richtigen Felder fest, damit die Sichtbarkeit in der Benachrichtigungsleiste optimiert wird.
  • Verwenden Sie die richtigen visuellen Elemente, um Nutzer zu leiten. Bei Mitfahrdiensten sollte beispielsweise ein Fahrzeugbild festgelegt und die genaueste Farbe des Fahrzeugs in der Benachrichtigung mit Notification#setLargeIcon verwendet werden.
  • Verwenden Sie eine prägnante und klare Sprache, um den Fortschritt des Kaufprozesses zu definieren. Die Ankunftszeit, der Name des Fahrers und der Status der Fahrt sind wichtige Informationen, die in der Benachrichtigung enthalten sein sollten.
  • Stellen Sie in der Benachrichtigung nützliche und relevante Aktionen bereit, die den Nutzerfluss optimieren. So sind beispielsweise die Aktionen „Trinkgeld geben“ und „Gericht hinzufügen“ bei einer neu initiierten Essenslieferbestellung vor der Lieferung nützlich.
  • Verwenden Sie Segmente und Punkte, um Status anzugeben. So können beispielsweise Segmente den Status und die Dauer des Verkehrs auf einer Fahrt mit einem Fahrdienst farblich darstellen. Punkte stellen Status für Meilensteine wie die Zubereitung von Speisen, die Lieferung und die Abholung von Fahrgästen dar.
  • Aktualisieren Sie die Fortschrittsanzeige, damit sie den tatsächlichen Fortschritt der Fahrt korrekt widerspiegelt. So können sich beispielsweise Änderungen der Verkehrslage in Änderungen der Segmentfarben und Textupdates widerspiegeln.

Das folgende Code-Snippet zeigt, wie eine ProgressStyle-Benachrichtigung für einen Mitfahrdienstkontext verwendet werden kann:

var ps =
    Notification.ProgressStyle()
        .setStyledByProgress(false)
        .setProgress(456)
        .setProgressTrackerIcon(Icon.createWithResource(appContext, R.drawable.ic_car_red))
        .setProgressSegments(
            listOf(
                Notification.ProgressStyle.Segment(41).setColor(Color.BLACK),
                Notification.ProgressStyle.Segment(552).setColor(Color.YELLOW),
                Notification.ProgressStyle.Segment(253).setColor(Color.WHITE),
                Notification.ProgressStyle.Segment(94).setColor(Color.BLUE)
            )
        )
        .setProgressPoints(
            listOf(
                Notification.ProgressStyle.Point(60).setColor(Color.RED),
                Notification.ProgressStyle.Point(560).setColor(Color.GREEN)
            )
        )

In der [Beispiel-App][8]{:.external} können Sie mit diesen APIs experimentieren.