Il sistema promuove le notifiche degli aggiornamenti live. 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 schede di notifica promosse hanno le seguenti caratteristiche di aspetto:
- Espanso per impostazione predefinita
- Non comprimibile
Per essere considerata un aggiornamento live, la notifica deve soddisfare i seguenti requisiti:
- Deve essere Standard/Nessuno stile,
BigTextStyle
,CallStyle
oProgressStyle
. - Deve richiedere la seguente autorizzazione non di runtime nel manifest Android
android.permission.POST_PROMOTED_NOTIFICATIONS
. - Deve richiedere la promozione utilizzando
EXTRA_REQUEST_PROMOTED_ONGOING
oNotificationCompat.Builder#requestPromotedOngoing
. - Deve essere
ongoing
(impostaFLAG_ONGOING_EVENT
). - Deve essere impostato un
contentTitle
. - NON deve avere impostato alcun
customContentView
(nessunRemoteViews
). - NON deve essere il riepilogo di un gruppo che utilizza
setGroupSummary
. - Non deve
setColorized
aTRUE
. - 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_ONGOING
indica se la notifica è promossa.Notification.hasPromotableCharacteristics()
verifica se il sistema può promuovere la notifica. Questo metodo non tiene conto del fatto che l'utente abbia disattivato gli aggiornamenti live per l'app nelle impostazioni.NotificationManager.canPostPromotedNotifications()
controlla se la tua app può pubblicare una notifica promozionale, 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 sensibili al tempo.
In corso
Un aggiornamento live deve rappresentare un'attività in corso, con un inizio e una fine distinti. Se un'attività si svolge in passato, non utilizzare un aggiornamento live. Utilizza invece una notifica standard. Ciò vale anche per gli eventi che non sono ancora iniziati, anche se gli eventi che stanno per iniziare possono utilizzare un aggiornamento live.
Gli aggiornamenti in tempo reale rappresentano le attività in corso. Non utilizzare gli aggiornamenti live per offrire un accesso più rapido alle funzionalità dell'app. Se vuoi farlo, utilizza un widget dell'app o un riquadro delle Impostazioni rapide personalizzato.
- Usi appropriati: navigazione attiva, chiamate in corso, monitoraggio attivo di corse condivise e monitoraggio attivo di consegne di cibo.
- Usi 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 in modo esplicito dall'utente, ad esempio l'inizio di un allenamento, l'avvio della navigazione o la richiesta di un servizio di trasporto con conducente. Non mostrare informazioni ambientali, ad esempio quelle relative all'ambiente, agli interessi o agli eventi futuri dell'utente, in un aggiornamento live. 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 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 futura partecipazione a un evento sensibile al fattore tempo. In questi casi, potrebbe essere opportuno mostrare automaticamente un aggiornamento live 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 live per quell'evento. Tuttavia, devi includere anche un'azione Sblocca 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 l'evoluzione dello stato dell'attività.
Un aggiornamento live è spesso appropriato per le attività che passano dagli aggiornamenti live alle 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 all'aeroporto o al luogo dell'evento o quando è iniziato l'imbarco. Al contrario, un aggiornamento in tempo reale non è appropriato per il monitoraggio di un pacchetto, in quanto l'utente non deve monitorarlo costantemente.
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 in cui viene attivata la notifica avvia un conto alla rovescia per la durata della notifica, a meno che non venga chiusa o aggiornata.
- L'ora è almeno 2 minuti nel futuro: se l'ora attuale è le 10:05 e l'ora è impostata sulle 10:10, il chip indicherà "5 min".
- Se l'ora è più di un minuto nel passato, la notifica non viene mostrata.
- Utilizza
setShowWhen
perFALSE
se non vuoi che la notifica visualizzata nella tendina abbia un orario.
Aspetto del chip di stato
Il chip di stato include sempre un'icona e, facoltativamente, del testo. Il chip ha una larghezza massima di 96 dp. Mostra il testo in base ai seguenti criteri:
- Se contiene meno di 7 caratteri, mostra l'intero testo.
- Se verrà visualizzato meno della metà del testo, mostra solo l'icona.
- Se verrà visualizzata più della metà del testo, mostra la maggior quantità possibile di testo.
Dismissal
Gli utenti possono controllare la visibilità delle notifiche nella relativa ombra. 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 che l'utente ha chiuso. Utilizza
setDeleteIntent
per rilevare gli aggiornamenti ignorati.
Consulta l'app di esempio per sperimentare queste API.