Il sistema promuove le notifiche degli aggiornamenti in tempo reale. Le notifiche promosse vengono visualizzate in modo più evidente sulle piattaforme di sistema, ad esempio nella parte superiore del riquadro a scomparsa delle notifiche e nella 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 in tempo reale, la notifica deve soddisfare i seguenti requisiti:
- Deve essere Standard/Senza stile,
BigTextStyle
,CallStyle
oProgressStyle
. - Devi richiedere la seguente autorizzazione non di runtime nel file manifest di Android
android.permission.POST_PROMOTED_NOTIFICATIONS
. - È necessario richiedere la promozione utilizzando
EXTRA_REQUEST_PROMOTED_ONGOING
oNotificationCompat.Builder#requestPromotedOngoing
. - Deve essere
ongoing
(impostaFLAG_ONGOING_EVENT
). - Deve essere impostato un valore
contentTitle
. - NON deve essere impostato alcun
customContentView
(nessunRemoteViews
). - NON deve essere il riepilogo di un gruppo che utilizza
setGroupSummar
y. - 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 in tempo reale per l'app nelle impostazioni.NotificationManager.canPostPromotedNotifications()
controlla 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 inizio e fine distinti. Se un'attività si verifica nel 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 quelli che stanno per iniziare possono utilizzare un Aggiornamento in tempo reale.
Gli aggiornamenti in tempo reale rappresentano le attività in corso. Non utilizzare Aggiornamenti in tempo reale per offrire accesso accelerato alle funzionalità dell'app. Se vuoi farlo, utilizza un widget dell'app o un riquadro delle Impostazioni rapide personalizzato.
- Utilizzi appropriati: navigazione attiva, chiamate in corso, monitoraggio attivo di corse in auto condivisi e monitoraggio attivo di consegne di cibo.
- Usi inappropriati: annunci, promozioni, messaggi di chat, avvisi, eventi imminenti nel calendario e accesso rapido alle funzionalità dell'app.
Avviato dall'utente
La maggior parte degli aggiornamenti in tempo reale dovrebbe rappresentare attività attivate esplicitamente dall'utente, ad esempio l'avvio di un'attività fisica, l'avvio della navigazione in auto o la richiesta di una corsa in car sharing. Non mostrare informazioni sull'ambiente, come quelle sull'ambiente, sugli interessi o sugli eventi imminenti dell'utente, in un aggiornamento in tempo reale. Non consentire alle attività attivate da terze parti di generare aggiornamenti in tempo reale.
A volte, un utente potrebbe eseguire un'azione che avvia un'attività per un momento 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 con scadenza. In questi casi, potrebbe essere opportuno mostrare automaticamente un aggiornamento in tempo reale all'inizio dell'evento programmato. Tuttavia, le app devono ottimizzare i propri attivatori 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 di sport, puoi iniziare a pubblicare aggiornamenti in tempo reale per quell'evento. Tuttavia, devi includere anche un'azione di Scollega nella notifica associata.
Urgente
Mostra un aggiornamento in tempo reale solo se richiede l'attenzione dell'utente durante l'attività. Un caso d'uso fondamentale 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, la visualizzazione di una notifica relativa allaboarding pass è appropriata 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 arriva all'aeroporto o al luogo dell'evento o quando è iniziato l'imbarco. Al contrario, un aggiornamento in tempo reale non è appropriato per monitorare un pacchetto, poiché l'utente non ha bisogno di 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 trasmettere informazioni sullo stato importanti relative alla notifica incentrata sull'avanzamento.

Notification.Builder#setSmallIcon
.
Notification.Builder#setShortCriticalText
per mostrare l'ora assoluta.
Notification.Builder#setShortCriticalText
per trasmettere informazioni importanti.Quando è l'ora
L'ora when attiva un conto alla rovescia per la durata della notifica, a meno che la notifica non venga ignorata o aggiornata.
- L'ora in cui è impostato il comando when è di almeno 2 minuti successiva all'ora corrente: se l'ora corrente è le 10:05 e l'ora in cui è impostato il comando when è le 10:10, il chip dirà "5 min".
- Se l'ora in cui è stata inviata la notifica è anteriore a più di 1 minuto, la notifica non viene visualizzata.
- Utilizza
setShowWhen
perFALSE
se non vuoi che la notifica visualizzata nella schermata di interruzione 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 sono meno di 7 caratteri, viene mostrato l'intero testo.
- Se viene visualizzata meno della metà del testo, mostra solo l'icona.
- Se viene visualizzata più della metà del testo, mostra il maggior numero possibile di caratteri.
Dismissal
Gli utenti possono controllare la visibilità delle notifiche nella barra delle 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 potrebbero ignorare. Non ripubblicare gli aggiornamenti in tempo reale ignorati dall'utente. Utilizza
setDeleteIntent
per rilevare gli aggiornamenti ignorati.