Creare una notifica incentrata sull'avanzamento

notifica incentrata sui progressi nella parte superiore dell'area notifiche
Figura 1. Una notifica incentrata sui progressi nella parte superiore del riquadro a scomparsa.

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 applicare uno stile alle notifiche incentrate sui progressi. I casi d'uso principali includono ride sharing, consegna e navigazione. All'interno di questa classe, puoi indicare stati e traguardi in un percorso 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 ProgressStyle:

Figura 2.

A. Intestazione - Sottotesto

Notification.Builder#setSubText()

B. Intestazione - Ora

Notification.Builder#setWhen()

C. Titolo contenuti

Notification.Builder#setContentTitle()

D. Testo del contenuto

Notification.Builder#setContentText()

E. Barra di avanzamento

Notification.ProgressStyle

F. Pulsante di 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 ride sharing e i traguardi.

Best practice

Utilizza le API corrette e segui le best practice per offrire la migliore esperienza utente per gli aggiornamenti dei progressi.

  • Imposta i campi corretti per soddisfare la visibilità promossa nell'area notifiche.
  • Utilizza gli elementi visivi corretti per guidare gli utenti. Ad esempio, le app di ride sharing devono impostare un'immagine del veicolo e utilizzare il colore più accurato del veicolo in the notification using Notification#setLargeIcon.
  • Utilizza un linguaggio conciso e chiaro per definire i progressi del percorso utente. L'ora di arrivo, il nome del conducente e lo stato del viaggio sono testi importanti che la notifica deve comunicare.
  • Fornisci azioni utili e pertinenti nella notifica che semplificano il percorso utente. Ad esempio, fornire "Suggerimento" 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 viaggio di ride sharing. I punti rappresentano gli stati per i traguardi come la preparazione del cibo, la consegna e il prelievo dei passeggeri.
  • Aggiorna l'esperienza di avanzamento per riflettere con precisione la progressione effettiva del viaggio. Ad esempio, le modifiche alle condizioni del traffico possono essere riflesse nelle modifiche ai colori dei segmenti e negli aggiornamenti del testo.

Il seguente snippet di codice mostra come una notifica ProgressStyle potrebbe essere utilizzata per un contesto di ride 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 queste API.