Creare una notifica incentrata sull'avanzamento

notifica incentrata sull'avanzamento nell'area notifiche superiore
Figura 1. Una notifica incentrata sull'avanzamento nella parte superiore dell'area notifiche.

Android 16 introduce un nuovo modello di notifica per aiutare gli utenti a monitorare senza problemi i percorsi avviati dagli utenti, dall'inizio alla fine. Queste notifiche hanno una visibilità maggiore sulle superfici di sistema e una posizione migliore nel riquadro a scomparsa delle notifiche.

Utilizza Notification.ProgressStyle per personalizzare lo stile delle notifiche incentrate sull'avanzamento. I casi d'uso principali includono il car sharing, la consegna e la navigazione. All'interno di questa classe, puoi indicare stati e tappe fondamentali di un percorso dell'utente utilizzando punti e segmenti.

Classi pertinenti

Le seguenti classi contengono le diverse API che utilizzi per creare una notifica ProgressStyle:

Anatomia e personalizzazione

Le seguenti immagini mostrano le diverse parti che compongono le notifiche di ProgressStyle:

Figura 2.

A. Header - Subtext

Notification.Builder#setSubText()

B. Header - Time

Notification.Builder#setWhen()

C. Titolo contenuti

Notification.Builder#setContentTitle()

D. Testo dei contenuti

Notification.Builder#setContentText()

E. Barra di avanzamento

Notification.ProgressStyle

F. Pulsante Azione

Notification.Builder#addAction()

Figura 3. Le app possono impostare un'immagine del veicolo per l'icona del tracker e utilizzare segmenti e punti per indicare l'esperienza di rideshare e i traguardi.

Best practice

Utilizza le API giuste e segui le best practice per offrire la migliore esperienza utente per gli aggiornamenti sull'avanzamento.

  • Imposta i campi corretti per soddisfare i requisiti di visibilità in evidenza nell'area notifiche.
  • Utilizza gli elementi visivi giusti per guidare gli utenti. Ad esempio, le app di rideshare devono impostare un'immagine del veicolo e utilizzare il colore più preciso del veicolo nella notifica utilizzando Notification#setLargeIcon.
  • Utilizza un linguaggio chiaro e conciso per definire l'avanzamento del percorso dell'utente. L'orario di arrivo, il nome del conducente e lo stato del percorso sono informazioni importanti che la notifica deve comunicare.
  • Fornisci azioni utili e pertinenti nella notifica per semplificare il percorso dell'utente. Ad esempio, fornire "Mancia" e "Aggiungi piatto" a un ordine di consegna di cibo appena avviato sono azioni utili prima della consegna.
  • Utilizza segmenti e punti per indicare gli stati. Ad esempio, i segmenti possono colorare lo stato e la durata del traffico in un percorso di ride sharing. I punti rappresentano gli stati per tappe fondamentali come la preparazione del cibo, la consegna e il ritiro dei passeggeri.
  • Aggiorna l'esperienza di avanzamento in modo che rifletta con precisione l'avanzamento effettivo del percorso. Ad esempio, le variazioni delle condizioni del traffico possono essere riflesse in modifiche ai colori dei segmenti e aggiornamenti del testo.

Il seguente snippet di codice mostra come utilizzare una notifica ProgressStyle per un contesto di car sharing:

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)
            )
        )

Consulta l'app di esempio per sperimentare con queste API.