A partire da Android 7.0 (livello API 24), puoi visualizzare le notifiche correlate in un gruppo. Ad esempio, se la tua app mostra le notifiche per le email ricevute, inserisci tutte le notifiche per i nuovi messaggi email nello stesso gruppo in modo che vengano compresse insieme.
Per supportare le versioni precedenti, aggiungi una notifica di riepilogo che viene visualizzata da sola per riassumere tutte le notifiche separate. Una notifica in stile posta in arrivo è il modo usuale per farlo.
Se tutte le seguenti condizioni sono vere per il tuo caso d'uso, utilizza i gruppi di notifiche:
Le notifiche secondarie sono complete e possono essere visualizzate singolarmente senza la necessità di un riepilogo del gruppo.
È utile mostrare le notifiche secondarie singolarmente. Ad esempio:
Hanno azioni specifiche per ogni notifica.
Ogni notifica contiene più informazioni che l'utente può visualizzare.
Se le tue notifiche non soddisfano i criteri precedenti, valuta la possibilità di aggiornare una notifica esistente con nuove informazioni o di creare una notifica in stile messaggio per mostrare più aggiornamenti nella stessa conversazione.
Creare un gruppo e aggiungere una notifica
Per creare un gruppo di notifiche, definisci una stringa di identificatore univoca per il gruppo.
Poi, per ogni notifica che vuoi inserire nel gruppo, chiama setGroup,
passando il nome del gruppo. Ad esempio:
val GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL" val newMessageNotification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID) .setSmallIcon(R.drawable.new_mail) .setContentTitle(emailObject.getSenderName()) .setContentText(emailObject.getSubject()) .setLargeIcon(emailObject.getSenderAvatar()) .setGroup(GROUP_KEY_WORK_EMAIL) .build()
Per impostazione predefinita, le notifiche vengono ordinate in base alla data di pubblicazione, ma puoi modificare l'ordine chiamando setSortKey.
Se gli avvisi per il gruppo di una notifica devono essere gestiti da un'altra
notifica, chiama setGroupAlertBehavior. Ad esempio, se vuoi che solo
il riepilogo del gruppo emetta un suono, tutte le notifiche secondarie del gruppo devono avere il
comportamento di avviso del gruppo GROUP_ALERT_SUMMARY. Le altre opzioni sono
GROUP_ALERT_ALL e GROUP_ALERT_CHILDREN.
Impostare un riepilogo del gruppo
Le notifiche raggruppate devono avere una notifica aggiuntiva che funge da riepilogo del gruppo. Per attivare le notifiche raggruppate, devi impostare un riepilogo del gruppo. Questo riepilogo del gruppo deve includere parte del testo di ciascuna delle altre notifiche del gruppo per aiutare l'utente a capire cosa contiene il gruppo. La modalità di visualizzazione del riepilogo del gruppo dipende dalla versione di Android:
Le versioni di Android precedenti alla 7.0 (livello API 24) non possono mostrare un gruppo di notifiche nidificato, quindi il sistema mostra solo la notifica di riepilogo del gruppo e nasconde tutte le altre. L'utente può toccare la notifica di riepilogo del gruppo per aprire l'app.
Su Android 7.0 e versioni successive, il sistema mostra la notifica di riepilogo del gruppo come un gruppo di notifiche nidificato, etichettato con snippet di testo di ogni notifica raggruppata. Non viene visualizzato il testo impostato nella notifica di riepilogo del gruppo. L'utente può espandere il gruppo di notifiche nidificato per visualizzare le singole notifiche del gruppo, come mostrato nella Figura 1.
Anche se le versioni successive di Android non mostrano il testo di riepilogo del gruppo che hai progettato, devi impostare manualmente un riepilogo per attivare le notifiche raggruppate. Il comportamento del riepilogo del gruppo potrebbe variare su alcuni tipi di dispositivi, ad esempio i wearable. L'impostazione di contenuti avanzati nel riepilogo del gruppo contribuisce a offrire la migliore esperienza su tutti i dispositivi e le versioni.
Per aggiungere un riepilogo del gruppo:
Crea una nuova notifica con una descrizione del gruppo, spesso la soluzione migliore è utilizzare la notifica in stile posta in arrivo.
Aggiungi la notifica di riepilogo al gruppo chiamando
setGroup.Specifica che deve essere utilizzata come riepilogo del gruppo chiamando
setGroupSummary(true).
Il seguente codice mostra un esempio di creazione di un riepilogo del gruppo:
// Use constant ID for notifications used as group summary. val SUMMARY_ID = 0 val GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL" val newMessageNotification1 = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID) .setSmallIcon(R.drawable.ic_notify_email_status) .setContentTitle(emailObject1.getSummary()) .setContentText("You will not believe...") .setGroup(GROUP_KEY_WORK_EMAIL) .build() val newMessageNotification2 = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID) .setSmallIcon(R.drawable.ic_notify_email_status) .setContentTitle(emailObject2.getSummary()) .setContentText("Please join us to celebrate the...") .setGroup(GROUP_KEY_WORK_EMAIL) .build() val summaryNotification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID) .setContentTitle(emailObject.getSummary()) // Set content text to support devices running API level < 24. .setContentText("Two new messages") .setSmallIcon(R.drawable.ic_notify_summary_status) // Build summary info into InboxStyle template. .setStyle( NotificationCompat.InboxStyle() .addLine("Alex Faarborg Check this out") .addLine("Jeff Chang Launch Party") .setBigContentTitle("2 new messages") .setSummaryText("janedoe@example.com") ) // Specify which group this notification belongs to. .setGroup(GROUP_KEY_WORK_EMAIL) // Set this notification as the summary for the group. .setGroupSummary(true) .build() NotificationManagerCompat.from(this).apply { notify(emailNotificationId1, newMessageNotification1) notify(emailNotificationId2, newMessageNotification2) notify(SUMMARY_ID, summaryNotification) }
L'ID della notifica di riepilogo deve rimanere lo stesso in modo che venga pubblicata una sola volta e che tu possa aggiornarla in un secondo momento se le informazioni di riepilogo cambiano. Le aggiunte successive al gruppo devono comportare l'aggiornamento del riepilogo esistente.
Raggruppamento automatico
Su Android 7.0 (livello API 24) e versioni successive, se la tua app invia notifiche e non specifica una chiave di gruppo o un riepilogo del gruppo, il sistema potrebbe raggrupparle automaticamente. Le notifiche raggruppate automaticamente vengono visualizzate con una notifica di riepilogo del gruppo etichettata con snippet di testo di alcune delle notifiche raggruppate. L'utente può espandere questa notifica di riepilogo per visualizzare ogni singola notifica, come nel caso delle notifiche raggruppate manualmente.
Il comportamento di raggruppamento automatico potrebbe variare su alcuni tipi di dispositivi. Per offrire la migliore esperienza su tutti i dispositivi e le versioni, se sai che le notifiche devono essere raggruppate, specifica una chiave di gruppo e un riepilogo del gruppo per assicurarti che vengano raggruppate.