Creare una notifica di aggiornamento in tempo reale

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.

Figura 1. Un esempio di notifica di aggiornamento in tempo reale.

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 o ProgressStyle.
  • 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 o NotificationCompat.Builder#requestPromotedOngoing.
  • Deve essere ongoing (imposta FLAG_ONGOING_EVENT).
  • Deve essere impostato un valore contentTitle.
  • NON deve essere impostato alcun customContentView (nessun RemoteViews).
  • NON deve essere il riepilogo di un gruppo che utilizza setGroupSummary.
  • 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.

chip di stato con icona
Figura 2. Lo stato indeterminato mostra la piccola icona Notification.Builder#setSmallIcon.
chip di stato con l'ora
Figura 3. Usa Notification.Builder#setShortCriticalText per mostrare l'ora assoluta.
chip di stato con informazioni
Figura 4. Utilizza 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 per FALSE 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.