Fortschrittsorientierte Benachrichtigung erstellen

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

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

Verwenden Sie Notification.ProgressStyle, um fortschrittsbasierte Benachrichtigungen zu gestalten. Zu den wichtigsten Anwendungsfällen gehören Mitfahrgelegenheiten, Lieferungen und Navigation. In dieser Klasse können Sie Status und Meilensteine in einer User Journey mithilfe von Punkten und Segmenten kennzeichnen.

Relevante Kurse

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. Überschrift – Untertext

Notification.Builder#setSubText()

B. Header – Zeit

Notification.Builder#setWhen()

C. Content Title

Notification.Builder#setContentTitle()

D. Inhaltstext

Notification.Builder#setContentText()

E. Fortschrittsanzeige

Notification.ProgressStyle

F. Aktionsbutton

Notification.Builder#addAction()

Abbildung 3. Apps können ein Fahrzeugbild für das Tracker-Symbol festlegen und Segmente und Punkte verwenden, um die Fahrt und Meilensteine darzustellen.

Best Practices

Verwenden Sie die richtigen APIs und folgen Sie den Best Practices, um die bestmögliche Nutzererfahrung für 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 leiten. In Mitfahr-Apps sollte beispielsweise ein Bild des Fahrzeugs festgelegt und die genaue Farbe des Fahrzeugs in der Benachrichtigung mit Notification#setLargeIcon angegeben werden.
  • Verwenden Sie eine prägnante und klare Sprache, um den Fortschritt der User Journey zu definieren. Ankunftszeit, Name des Fahrers und Status der Fahrt sind wichtige Informationen, die in der Benachrichtigung enthalten sein sollten.
  • Stelle in der Benachrichtigung nützliche und relevante Aktionen bereit, die die User Journey optimieren. Beispielsweise sind „Trinkgeld“ und „Gericht hinzufügen“ für eine neu initiierte Essenslieferung nützliche Aktionen vor der Lieferung.
  • Verwenden Sie Segmente und Punkte, um Zustände zu kennzeichnen. Segmente können beispielsweise den Status und die Dauer des Verkehrs bei einer Fahrt mit einem Mitfahrdienst farblich kennzeichnen. Punkte stellen Status für Meilensteine wie Essenszubereitung, Lieferung und Abholung von Fahrgästen dar.
  • Aktualisieren Sie die Fortschrittsanzeige, um den tatsächlichen Fortschritt der Fahrt genau wiederzugeben. Änderungen der Verkehrslage können sich beispielsweise in Änderungen der Segmentfarben und Aktualisierungen im Text widerspiegeln.

Das folgende Code-Snippet zeigt, wie eine ProgressStyle-Benachrichtigung für einen Mitfahrkontext verwendet werden könnte:

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 diese APIs ausprobieren.