Gli aggiornamenti in tempo reale forniscono un riepilogo degli aggiornamenti importanti in modo che gli utenti possano monitorare i progressi senza aprire l'app. Il sistema promuove le notifiche degli aggiornamenti in tempo reale, anche se gli utenti possono ignorare o declassare temporaneamente una notifica di aggiornamento in tempo reale a una notifica standard. Le notifiche promosse vengono visualizzate in modo più evidente sulle superfici di sistema, ad esempio nella parte superiore del riquadro a scomparsa delle notifiche e della schermata di blocco, nonché come chip nella barra di stato. Le notifiche degli aggiornamenti in tempo reale devono seguire i principi delle notifiche per fornire informazioni brevi, tempestive e pertinenti.
Le schede delle notifiche promosse hanno le seguenti caratteristiche di aspetto:
- Espansa per impostazione predefinita
- Non comprimibile
La notifica deve soddisfare i seguenti requisiti per essere considerata un aggiornamento in tempo reale:
- Deve essere di stile standard,
BigTextStyle,CallStyle,ProgressStyleoMetricStyle. - Deve richiedere la seguente autorizzazione non di runtime nel manifest Android
android.permission.POST_PROMOTED_NOTIFICATIONS. - Deve richiedere la promozione utilizzando
EXTRA_REQUEST_PROMOTED_ONGOINGoNotificationCompat.Builder#setRequestPromotedOngoing. - Deve essere
ongoing(impostaFLAG_ONGOING_EVENT). - Deve avere un
contentTitleimpostato. - **NON** deve avere
customContentViewimpostato (nessunRemoteViews). - **NON** deve essere il riepilogo di un gruppo che utilizza
setGroupSummary. - NON deve essere impostato
setColorizedsuTRUE. - Il canale di notifica NON deve avere
IMPORTANCE_MIN.
Caratteristiche della promozione
Le seguenti API ti aiutano a determinare se il sistema promuoverà la tua notifica:
Notification.FLAG_PROMOTED_ONGOINGindica se la notifica è promossa.Notification.hasPromotableCharacteristics()convalida se il sistema può promuovere la notifica. Questo metodo non considera se l'utente ha disattivato gli aggiornamenti in tempo reale per l'app nelle impostazioni.NotificationManager.canPostPromotedNotifications()verifica se la tua app può pubblicare una notifica promossa, ad esempio se l'utente l'ha attivata o disattivata nelle impostazioni.Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONSè l'azione intent che consente alle app di inviare gli utenti alle Impostazioni per attivare questa funzionalità.
Criteri di utilizzo
Utilizza gli aggiornamenti in tempo reale per le attività in corso, avviate dall'utente e urgenti.
In corso
Un aggiornamento in tempo reale deve rappresentare un'attività in corso, con un inizio e una fine distinti. Se un'attività si è svolta in passato, non utilizzare un aggiornamento in tempo reale. Utilizza invece una notifica standard. Questo vale anche per gli eventi che non sono ancora iniziati, anche se gli eventi che stanno per iniziare possono utilizzare un aggiornamento in tempo reale.
Gli aggiornamenti in tempo reale rappresentano attività in corso. Non utilizzare gli aggiornamenti in tempo reale per offrire un accesso accelerato alle funzionalità dell'app. Se vuoi farlo, utilizza un widget dell'app o un riquadro Impostazioni rapide personalizzato.
- Utilizzi appropriati: navigazione attiva, chiamate telefoniche in corso, monitoraggio attivo di corse condivise e monitoraggio attivo di consegne di cibo.
- Utilizzi inappropriati: annunci, promozioni, messaggi di chat, avvisi, eventi di calendario imminenti e accesso rapido alle funzionalità dell'app.
Avviato dall'utente
La maggior parte degli aggiornamenti in tempo reale deve rappresentare attività attivate esplicitamente dall'utente, ad esempio l'inizio di un allenamento, l'avvio della Navigazione Auto o la richiesta di una corsa condivisa. Non mostrare informazioni ambientali, ad esempio sull'ambiente, sugli interessi o sugli eventi imminenti dell'utente, in un aggiornamento in tempo reale. Non consentire alle attività attivate da altre parti di generare aggiornamenti in tempo reale.
A volte, un utente potrebbe eseguire un'azione che avvia un'attività per un periodo di tempo in futuro. Ad esempio, se l'utente acquista biglietti per un volo o un concerto, si iscrive a un torneo o indica in altro modo la sua partecipazione futura a un evento urgente. In questi casi, potrebbe essere appropriato mostrare automaticamente un aggiornamento in tempo reale all'inizio dell'evento programmato. Tuttavia, le app devono regolare i trigger in modo che vengano visualizzati solo quando l'attività è imminente. Se l'utente indica esplicitamente di voler iniziare a monitorare un evento in background, ad esempio una partita sportiva, puoi iniziare a pubblicare aggiornamenti in tempo reale per quell'evento. Tuttavia, devi anche includere un'azione Rimuovi nella notifica associata.
Urgente
Mostra un aggiornamento in tempo reale solo se richiede l'attenzione dell'utente durante l'attività. Un caso d'uso chiave per gli aggiornamenti in tempo reale è il monitoraggio, quando l'utente trae un vantaggio significativo dal dare un'occhiata all'aggiornamento in tempo reale per tenere d'occhio lo stato in evoluzione dell'attività.
Un aggiornamento in tempo reale è spesso appropriato per le attività che passano da aggiornamenti in tempo reale a notifiche normali. Ad esempio, mostrare una notifica della carta d'imbarco è appropriato molte ore prima del volo di un utente, ma la notifica deve diventare un aggiornamento in tempo reale solo quando l'utente ha un'esigenza urgente, ad esempio quando è arrivato in aeroporto o nella sede dell'evento o quando è iniziato l'imbarco. Al contrario, un aggiornamento in tempo reale non è appropriato per monitorare un pacco, poiché l'utente non ha bisogno di monitorarlo costantemente.
Pratiche UX
Utilizza l'icona del tracker per visualizzare lo stato. Può essere aggiornata dinamicamente.
Quando un ETA è in fase di calcolo o non è ancora disponibile, non mostrare uno stato vuoto. Fornisci un testo segnaposto attivo, ad esempio "Sto pensando..." o "Sto ricalcolando il percorso...", per indicare che il sistema è in funzione, come mostrato nell'esempio.
Chip di stato
I chip di stato consentono agli utenti di tenere traccia degli aggiornamenti in tempo reale quando la notifica non è visibile. Utilizza setShortCriticalText o setWhen per comunicare
informazioni importanti sullo stato della notifica incentrata sui progressi.
Notification.Builder#setSmallIcon.
Notification.Builder#setShortCriticalText per mostrare l'ora assoluta.
Notification.Builder#setShortCriticalText per comunicare informazioni importanti.Quando
L'ora di attivazione avvia un conto alla rovescia per la durata della notifica, a meno che la notifica non venga ignorata o aggiornata. I seguenti punti descrivono il funzionamento dell'ora di attivazione in varie situazioni:
- L'ora di attivazione è di almeno 2 minuti in futuro: se l'ora attuale è le 10:05 e l'ora di attivazione è impostata sulle 10:10, il chip indica 5 min.
- L'ora di attivazione è nel passato: il testo non viene mostrato.
- Quando si utilizza il cronometro per l'ora di attivazione, è possibile visualizzare un timer nel chip.
Consulta
setUsesChronometeresetChronometerCountdown. Il timer del cronometro viene mostrato nel chip finché è positivo. - Non vuoi che l'ora di attivazione venga visualizzata nella notifica: utilizza
setShowWhenimpostato suFALSE.
Aspetto del chip di stato
Il chip di stato include sempre un'icona e, facoltativamente, del testo. La larghezza massima del chip è di 96 dp. Il testo verrà mostrato solo se può essere contenuto interamente nel chip. Il testo viene visualizzato in base ai seguenti criteri:
- Se il testo è inferiore a 7 caratteri, viene visualizzato interamente.
- Se verrà visualizzata meno della metà del testo, viene mostrata solo l'icona.
- Se verrà visualizzata più della metà del testo, viene mostrata la maggior quantità di testo possibile.
Dismissal
Gli utenti possono controllare la visibilità delle notifiche nell'area notifiche. La pubblicazione di aggiornamenti in tempo reale indesiderati potrebbe indurre gli utenti a revocare l'autorizzazione di pubblicazione di un'app.
Per impedire agli utenti di disattivare completamente gli aggiornamenti in tempo reale, evita di pubblicare aggiornamenti che gli utenti potrebbero ignorare. Non ripubblicare gli aggiornamenti in tempo reale ignorati dall'utente. Utilizza setDeleteIntent per rilevare gli aggiornamenti ignorati.
Consulta l'app di esempio per sperimentare queste API.
Domande frequenti
Domanda: cos'è il punto bianco alla fine della barra di avanzamento?
Risposta: il punto bianco alla fine della barra di avanzamento indica visivamente la fine della barra di avanzamento.
Domanda: perché le notifiche personalizzate non sono supportate per gli aggiornamenti in tempo reale?
Risposta: le notifiche personalizzate rendono difficili i test e l'esperienza utente coerenti, poiché il loro comportamento varia in modo significativo tra le versioni di Android e i produttori di dispositivi. Evita le notifiche personalizzate che utilizzano RemoteViews.