Fortschrittsorientierte Benachrichtigung erstellen

Fortschrittsbasierte Benachrichtigung in der oberen Leiste
Abbildung 1. Eine fortschrittsbasierte Benachrichtigung oben im Benachrichtigungsfeld

In Android 16 wird eine neue Benachrichtigungsvorlage eingeführt, mit der Nutzer nahtlos den Fortschritt von Fahrten verfolgen können, die sie selbst initiiert haben. Diese Benachrichtigungen sind auf Systemoberflächen besser sichtbar und werden im Benachrichtigungsfeld ganz oben angezeigt.

Mit Notification.ProgressStyle können Sie fortschrittsbasierte Benachrichtigungen gestalten. Zu den wichtigsten Anwendungsfällen gehören Mitfahrgelegenheiten, Lieferungen und Navigation. In dieser Klasse können Sie mit Punkten und Segmenten Status und Meilensteine einer User Journey angeben.

Relevante Klassen

Die folgenden Klassen enthalten die verschiedenen APIs, mit denen Sie eine ProgressStyle-Benachrichtigung erstellen:

Anatomie und Anpassung

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

Abbildung 2

A. Header – Untertitel

Notification.Builder#setSubText()

B. Header – Zeit

Notification.Builder#setWhen()

C. Titel des Inhalts

Notification.Builder#setContentTitle()

D. Text des Inhalts

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 anzugeben.

Best Practices

Verwenden Sie die richtigen APIs und folgen Sie den Best Practices, um Nutzern die bestmögliche Erfahrung mit Fortschrittsaktualisierungen zu bieten.

  • Legen Sie die richtigen Felder fest, um die Sichtbarkeit in der Benachrichtigungsleiste zu erhöhen.
  • Verwenden Sie die richtigen visuellen Elemente, um Nutzer zu führen. Bei Mitfahrgelegenheits-Apps 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 der User Journey zu beschreiben. Ankunftszeit, Name des Fahrers und Status der Fahrt sind wichtige Informationen, die in der Benachrichtigung enthalten sein sollten.
  • Bieten Sie in der Benachrichtigung nützliche und relevante Aktionen an, die die User Journey optimieren. Bei einer neu initiierten Lebensmittellieferung sind beispielsweise die Aktionen „Trinkgeld geben“ und „Artikel hinzufügen“ nützlich, bevor die Lieferung erfolgt.
  • Verwenden Sie Segmente und Punkte, um Status anzugeben. Mit Segmenten kann beispielsweise der Status und die Dauer des Verkehrs bei einer Mitfahrgelegenheit farblich dargestellt werden. Punkte stellen Status für Meilensteine wie die Zubereitung von Lebensmitteln, die Lieferung und die Abholung von Fahrgästen dar.
  • Aktualisieren Sie die Fortschrittsanzeige, um den tatsächlichen Fortschritt der Fahrt genau widerzuspiegeln. Änderungen der Verkehrslage können sich beispielsweise in Änderungen der Segmentfarben und Aktualisierungen des Texts widerspiegeln.

Das folgende Code-Snippet zeigt, wie eine ProgressStyle-Benachrichtigung für eine Mitfahrgelegenheit 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 können Sie mit diesen APIs experimentieren.