Informazioni sulle notifiche

Una notifica è un messaggio che Android visualizza al di fuori dell'interfaccia utente della tua app per fornire all'utente promemoria, comunicazioni da altre persone o altre informazioni tempestive dalla tua app. Gli utenti possono toccare la notifica per aprire la tua app o eseguire un'azione direttamente dalla notifica.

Questa pagina fornisce una panoramica di dove vengono visualizzate le notifiche e delle funzionalità disponibili. Per iniziare a creare notifiche, leggi Creare una notifica.

Per ulteriori informazioni sulla progettazione delle notifiche e sui pattern di interazione, consulta la guida alla progettazione delle notifiche.

Aspetto su un dispositivo

Le notifiche vengono visualizzate automaticamente agli utenti in diverse posizioni e formati. Una notifica viene visualizzata come un'icona nella barra di stato, una voce più dettagliata nel riquadro delle notifiche e un badge sull'icona dell'app.

Comportamento cross-device

Per impostazione predefinita, le notifiche vengono visualizzate anche sui wearable associati. Negli scenari in cui i contenuti delle notifiche sono pertinenti solo per il dispositivo di origine, utilizza setLocalOnly(). Un esempio è una notifica che conferma il completamento del download di contenuti multimediali. Per ulteriori indicazioni specifiche per le notifiche Wear OS, consulta la guida alle notifiche Wear OS.

Barra di stato e riquadro delle notifiche

Quando invii una notifica, questa viene visualizzata per prima come un'icona nella barra di stato.

Figura 1. Le icone delle notifiche vengono visualizzate sul lato sinistro della barra di stato.

Gli utenti possono scorrere verso il basso sulla barra di stato per aprire il riquadro delle notifiche, dove possono visualizzare maggiori dettagli ed eseguire azioni con la notifica.

Figura 2. Notifiche nel riquadro delle notifiche.

Gli utenti possono trascinare verso il basso una notifica nel riquadro a scomparsa per visualizzare la visualizzazione espansa, che mostra contenuti aggiuntivi e pulsanti di azione, se forniti. A partire da Android 13, questa visualizzazione espansa include un pulsante che consente agli utenti di interrompere un'app che ha servizi in primo piano in corso.

Una notifica rimane visibile nel riquadro delle notifiche finché non viene chiusa dall'app o dall'utente.

Notifica in evidenza

A partire da Android 5.0, le notifiche possono essere visualizzate brevemente in una finestra mobile chiamata notifica in evidenza. Questo comportamento è in genere per le notifiche importanti di cui l'utente deve essere informato immediatamente e viene visualizzato solo se il dispositivo è sbloccato.

Figura 3. Una notifica in evidenza viene visualizzata davanti all' app in primo piano.

La notifica in evidenza viene visualizzata quando la tua app invia la notifica. Scompare dopo un attimo, ma rimane visibile nel riquadro delle notifiche come di consueto.

Le condizioni che potrebbero attivare le notifiche in evidenza includono le seguenti:

  • L'attività dell'utente è in modalità a schermo intero, ad esempio quando l'app utilizza fullScreenIntent.

  • La notifica ha una priorità elevata e utilizza suonerie o vibrazioni sui dispositivi con Android 7.1 (livello API 25) e versioni precedenti.

  • Il canale di notifica ha un'importanza elevata sui dispositivi con Android 8.0 (livello API 26) e versioni successive.

Schermata di blocco

A partire da Android 5.0, le notifiche possono essere visualizzate nella schermata di blocco.

Puoi impostare a livello di programmazione se le notifiche pubblicate dalla tua app vengono visualizzate su una schermata di blocco sicura e, in caso affermativo, il livello di dettaglio visibile.

Gli utenti possono utilizzare le impostazioni di sistema per scegliere il livello di dettaglio visibile nelle notifiche della schermata di blocco o per disattivare tutte le notifiche della schermata di blocco. A partire da Android 8.0, gli utenti possono disattivare o attivare le notifiche della schermata di blocco per ogni canale di notifica.

Figura 4. Notifiche nella schermata di blocco con contenuti sensibili nascosti.

Per saperne di più, consulta Impostare la visibilità della schermata di blocco.

Badge dell'icona dell'app

Nei launcher supportati sui dispositivi con Android 8.0 (livello API 26) e versioni successive, le icone delle app indicano le nuove notifiche con un badge colorato noto come indicatore di notifica sull'icona in Avvio applicazioni dell'app corrispondente.

Gli utenti possono toccare e tenere premuta l'icona di un'app per visualizzare le notifiche per quell'app. Gli utenti possono chiudere o agire sulle notifiche da questo menu, in modo simile al riquadro delle notifiche.

Figura 5. Badge di notifica e menu tocca e tieni premuto.

Per saperne di più su come funzionano i badge, leggi Modificare un badge di notifica.

Wear OS

Se l'utente ha un dispositivo Wear OS associato, tutte le notifiche vengono visualizzate automaticamente, inclusi i dettagli espandibili e i pulsanti di azione.

Puoi migliorare l'esperienza personalizzando l'aspetto delle notifiche sui wearable e fornendo diverse azioni, tra cui risposte suggerite e risposte di input vocale. Per saperne di più, consulta la sezione su come aggiungere funzionalità specifiche per i wearable alla tua notifica.

Figura 6. Le notifiche vengono visualizzate automaticamente su un dispositivo Wear OS associato.

Anatomia delle notifiche

La progettazione di una notifica è determinata dai modelli di sistema e la tua app definisce i contenuti per ogni parte del modello. Alcuni dettagli della notifica vengono visualizzati solo nella visualizzazione espansa.

Figura 7. Una notifica con dettagli di base.

Le parti più comuni di una notifica sono indicate nella figura 7, come segue:

  1. Icona piccola: obbligatoria; impostata utilizzando setSmallIcon().
  2. Nome dell'app: fornito dal sistema.
  3. Timestamp: fornito dal sistema, ma puoi eseguirne l'override utilizzando setWhen() o nasconderlo utilizzando setShowWhen(false).
  4. Icona grande: facoltativa; in genere utilizzata solo per le foto dei contatti. Non utilizzarla per l'icona dell'app. Impostata utilizzando setLargeIcon().
  5. Titolo: facoltativo; impostato utilizzando setContentTitle().
  6. Testo: facoltativo; impostato utilizzando setContentText().

Ti consigliamo vivamente di utilizzare i modelli di sistema per una corretta compatibilità di progettazione su tutti i dispositivi. Se necessario, puoi creare un layout di notifica personalizzato.

Per saperne di più su come creare una notifica con queste e altre funzionalità, leggi Creare una notifica.

Azioni di notifica

Sebbene non sia obbligatorio, è una buona pratica che ogni notifica apra un'attività dell'app appropriata quando viene toccata. Oltre a questa azione di notifica predefinita, puoi aggiungere pulsanti di azione che completano un'attività correlata all'app dalla notifica, spesso senza aprire un'attività, come mostrato nella figura 8.

Figura 8. Una notifica con pulsanti di azione.

A partire da Android 7.0 (livello API 24), puoi aggiungere un'azione per rispondere ai messaggi o inserire altro testo direttamente dalla notifica.

A partire da Android 10 (livello API 29), la piattaforma può generare automaticamente pulsanti di azione con azioni suggerite basate su intent.

L'aggiunta di pulsanti di azione è spiegata ulteriormente in Creare una notifica.

Richiedere un dispositivo sbloccato

Gli utenti potrebbero visualizzare le azioni di notifica nella schermata di blocco del dispositivo. Se un'azione di notifica fa sì che un'app avvii un'attività o invii una risposta diretta, gli utenti devono sbloccare il dispositivo prima che l'app possa richiamare l'azione di notifica.

Su Android 12 (livello API 31) e versioni successive, puoi configurare un'azione di notifica in modo che il dispositivo debba essere sbloccato affinché la tua app possa richiamare l'azione, indipendentemente dal flusso di lavoro avviato dall'azione. Questa opzione aggiunge un ulteriore livello di sicurezza alle notifiche sui dispositivi bloccati.

Per richiedere che un dispositivo sia sbloccato prima che la tua app richiami una determinata azione di notifica, passa true a setAuthenticationRequired() quando crei l'azione di notifica, come mostrato nel seguente snippet di codice:

Kotlin

val moreSecureNotification = Notification.Action.Builder(...)

    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build()

Java

Notification moreSecureNotification = new Notification.Action.Builder(...)

    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build();

Notifica espandibile

Per impostazione predefinita, i contenuti di testo della notifica vengono troncati per adattarsi a una riga. Se vuoi che la notifica sia più lunga, puoi attivare un'area di testo più grande espandibile applicando un modello aggiuntivo, come mostrato nella figura 9.

Figura 9. Una notifica espandibile per testo di grandi dimensioni.

Puoi anche creare una notifica espandibile con un'immagine, in stile Posta in arrivo, con una conversazione in chat o con controlli di riproduzione multimediale. Per saperne di più, leggi Creare una notifica espandibile.

Aggiornamenti e gruppi di notifiche

Per evitare di inondare gli utenti con notifiche multiple o ridondanti quando hai aggiornamenti aggiuntivi, aggiorna una notifica esistente anziché inviarne una nuova o utilizza la notifica in stile Posta in arrivo per mostrare gli aggiornamenti delle conversazioni.

Tuttavia, se è necessario inviare più notifiche, valuta la possibilità di raggruppare le notifiche separate in un gruppo, disponibile su Android 7.0 e versioni successive.

Un gruppo di notifiche ti consente di comprimere più notifiche in un unico post nel riquadro delle notifiche con un riepilogo. L'utente può espandere progressivamente il gruppo di notifiche e ogni notifica al suo interno per maggiori dettagli, come mostrato nella figura 10.

Figura 10. Un gruppo di notifiche compresso ed espanso.

Per scoprire come aggiungere notifiche a un gruppo, consulta Creare un gruppo di notifiche.

Canali di notifica

A partire da Android 8.0 (livello API 26), tutte le notifiche devono essere assegnate a un canale, altrimenti non vengono visualizzate. In questo modo, gli utenti possono disattivare canali di notifica specifici per la tua app anziché disattivare tutte le notifiche. Gli utenti possono controllare le opzioni visive e audio per ogni canale dalle impostazioni di sistema di Android, come mostrato nella figura 11. Gli utenti possono anche toccare e tenere premuta una notifica per modificare i comportamenti del canale associato.

Sui dispositivi con Android 7.1 (livello API 25) e versioni precedenti, gli utenti possono gestire le notifiche solo per ogni app. Ogni app ha effettivamente un solo canale su Android 7.1 e versioni precedenti.

Figura 11. Impostazioni di notifica per l'app Orologio e uno dei suoi canali.

Un'app può avere canali separati per ogni tipo di notifica inviata dall'app. Un'app può anche creare canali di notifica in risposta alle scelte effettuate dagli utenti. Ad esempio, puoi configurare canali di notifica separati per ogni gruppo di conversazioni creato da un utente in un'app di messaggistica.

Il canale è anche il luogo in cui specifichi il livello di importanza delle notifiche su Android 8.0 e versioni successive, quindi tutte le notifiche pubblicate nello stesso canale di notifica hanno lo stesso comportamento. Questo è descritto nella sezione seguente.

Per saperne di più, consulta Crea e gestisci canali di notifica.

Importanza delle notifiche

Android utilizza l'importanza di una notifica per determinare quanto la notifica interrompe l'utente a livello visivo e audio. Maggiore è l'importanza di una notifica, più è interruttiva.

Su Android 7.1 (livello API 25) e versioni precedenti, l'importanza di una notifica è determinata da quella della notifica priority.

Su Android 8.0 (livello API 26) e versioni successive, l'importanza di una notifica è determinata dalla importance del canale in cui viene pubblicata la notifica. Gli utenti possono modificare l'importanza di un canale di notifica nelle impostazioni di sistema, come mostrato nella figura 12.

Figura 12. Gli utenti possono modificare l'importanza di ogni canale su Android 8.0 e versioni successive.

I possibili livelli di importanza e i comportamenti di notifica associati sono i seguenti:

  • Urgente: emette un suono e viene visualizzata come notifica in evidenza.

  • Alta: emette un suono.

  • Media: non emette alcun suono.

  • Bassa: non emette alcun suono e non viene visualizzata nella barra di stato.

Tutte le notifiche, indipendentemente dall'importanza, vengono visualizzate in posizioni dell'interfaccia utente di sistema non interruttive, ad esempio nel riquadro delle notifiche e come badge sull'icona in Avvio applicazioni. Tuttavia, puoi modificare l'aspetto del badge di notifica.

Per saperne di più, leggi come impostare l'importanza.

Modalità Non disturbare

A partire da Android 5.0 (livello API 21), gli utenti possono attivare la modalità Non disturbare, che disattiva suoni e vibrazioni per tutte le notifiche. Le notifiche vengono comunque visualizzate nell'interfaccia utente di sistema come di consueto, a meno che l'utente non specifichi diversamente.

Nella modalità Non disturbare sono disponibili tre livelli:

  • Silenzio totale: blocca tutti i suoni e le vibrazioni, anche di sveglie, musica, video e giochi.
  • Solo sveglie: blocca tutti i suoni e le vibrazioni, ad eccezione delle sveglie.
  • Solo priorità: gli utenti possono configurare le categorie a livello di sistema che possono interromperli, ad esempio solo sveglie, promemoria, eventi, chiamate o messaggi. Per messaggi e chiamate, gli utenti possono filtrare in base al mittente o al chiamante, come mostrato nella figura 13.

Figura 13. Gli utenti possono consentire le notifiche in base alle categorie a livello di sistema (a sinistra) e al mittente o al chiamante (a destra).

Su Android 8.0 (livello API 26) e versioni successive, gli utenti possono anche consentire le notifiche per categorie specifiche dell'app, note anche come canali, eseguendo l'override di Non disturbare per ogni canale. Ad esempio, un'app di pagamento potrebbe avere canali per le notifiche relative a prelievi e depositi. L'utente può consentire le notifiche di prelievo, le notifiche di deposito o entrambe in modalità priorità.

Sui dispositivi con Android 7.1 (livello API 25) e versioni precedenti, gli utenti possono consentire le notifiche per ogni app, anziché per ogni canale.

Per configurare le notifiche per queste impostazioni utente, devi impostare una categoria a livello di sistema.

Notifiche per i servizi in primo piano

È necessaria una notifica quando la tua app esegue un servizio in primo piano, ovvero un Service in esecuzione in background che è di lunga durata e visibile all'utente, ad esempio un lettore multimediale. Questa notifica non può essere chiusa come le altre notifiche. Per rimuovere la notifica, il servizio deve essere interrotto o rimosso dallo stato in primo piano.

Per saperne di più, leggi Servizi in primo piano. Se stai creando un lettore multimediale, leggi anche Riprodurre contenuti multimediali in background.

Comportamenti delle notifiche

Android 16.0, livello API 36

Le notifiche vengono ora raggruppate automaticamente per conto dell'app.

Le seguenti notifiche vengono raggruppate automaticamente:

  • Notifiche senza riepilogo
  • Notifiche senza notifiche secondarie
  • Notifiche con una o poche notifiche secondarie

Android 15.0, livello API 35

Assestamento

Android 15 introduce una funzionalità di attenuazione delle notifiche che mira a migliorare l'esperienza delle notifiche che arrivano in rapida successione. Questa funzionalità riduce l'aspetto, il volume del suono e l'intensità della vibrazione per le notifiche ripetitive fino a due minuti.

Le notifiche critiche che richiedono audio e feedback aptico per attirare l'attenzione non sono soggette ad attenuazione. L'utente può disattivare l'attenuazione delle notifiche in Impostazioni.

Figura 9. Le impostazioni di attenuazione delle notifiche.

Di seguito è riportato un esempio di come trovare le impostazioni di attenuazione delle notifiche:

Kotlin

val intent = Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS)
val pendingIntent =
            PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)

Java

Intent intent = new Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS)
PendingIntent pendingIntent =
            PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)