Una notifica è un messaggio che Android visualizza al di fuori della UI dell'app per fornire all'utente promemoria, comunicazioni da altre persone o altre informazioni tempestive dall'app. Gli utenti possono toccare la notifica per aprire l'app o eseguire un'azione direttamente dalla notifica.
Questa pagina fornisce una panoramica di dove vengono visualizzate le notifiche e delle funzionalità disponibili.
Guide all'implementazione
Le seguenti guide mostrano come implementare varie funzionalità di notifica nella tua app:
- Crea una notifica: scopri come creare e inviare una notifica di base.
- Autorizzazione alle notifiche:
scopri come gestire l'autorizzazione di runtime
POST_NOTIFICATIONS. - Canali di notifica: consenti agli utenti di controllare i comportamenti delle notifiche.
- Notifiche espandibili:
mostra più contenuti utilizzando stili come
BigTextStyleoMessagingStyle. - Bolle: utilizza overlay mobili ed espandibili per le conversazioni.
- Notifiche incentrate sui progressi: monitora i percorsi avviati dagli utenti, come il car sharing e le consegne.
- Notifiche di tipo chiamata: distinguono le chiamate in arrivo e in corso da altri tipi di notifiche.
- Notifiche di aggiornamento in tempo reale: monitora l'avanzamento delle attività continue.
- Guide alle notifiche specifiche per le visualizzazioni: guide per l'implementazione delle notifiche nelle app basate sulle visualizzazioni.
Per ulteriori informazioni sui pattern di progettazione e interazione delle notifiche, consulta la guida alla progettazione delle notifiche.
Aspetto su un dispositivo
Le notifiche vengono visualizzate automaticamente dagli utenti in posizioni e formati diversi. Una notifica viene visualizzata come icona nella barra di stato, come voce più dettagliata nel riquadro a scomparsa delle notifiche e come badge sull'icona dell'app.
Comportamento cross-device
Per impostazione predefinita, le notifiche vengono visualizzate anche sui dispositivi indossabili accoppiati. Negli scenari in cui i contenuti della notifica sono pertinenti solo per il dispositivo di origine, utilizza setLocalOnly(). Un esempio è una notifica che conferma il completamento del download di un file multimediale. Per ulteriori indicazioni specifiche per le notifiche di Wear OS, consulta le indicazioni relative alle notifiche di Wear OS.
Barra di stato e riquadro di notifica a scomparsa
Quando invii una notifica, questa viene visualizzata inizialmente come icona nella barra di stato.
Gli utenti possono scorrere verso il basso sulla barra di stato per aprire il riquadro a scomparsa delle notifiche, dove possono visualizzare ulteriori dettagli ed eseguire azioni con la notifica.
Gli utenti possono trascinare verso il basso una notifica nel riquadro 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 con servizi in primo piano in corso.
Una notifica rimane visibile nel riquadro a scomparsa delle notifiche finché non viene ignorata 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 è normalmente riservato alle notifiche importanti che l'utente deve conoscere immediatamente e viene visualizzato solo se il dispositivo è sbloccato.
La notifica in evidenza viene visualizzata quando l'app la invia. Scompare dopo un istante, ma rimane visibile nel riquadro delle notifiche come al solito.
Le condizioni che potrebbero attivare le notifiche in evidenza includono:
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 in modo programmatico 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.
Per scoprire di più, consulta Imposta la visibilità della schermata di blocco.
Badge dell'icona dell'app
In Avvio applicazioni 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 corrispondente.
Gli utenti possono toccare e tenere premuta l'icona di un'app per visualizzare le notifiche relative a quell'app. Possono ignorare o intervenire sulle notifiche da quel menu, in modo simile al riquadro a scomparsa delle notifiche.
Per scoprire di più su come funzionano i badge, leggi Modifica un badge di notifica.
Wear OS
Se l'utente ha un dispositivo Wear OS accoppiato, tutte le notifiche vengono visualizzate automaticamente lì, inclusi i dettagli espandibili e i pulsanti di azione.
Puoi migliorare l'esperienza personalizzando l'aspetto delle notifiche sui dispositivi indossabili e fornendo diverse azioni, tra cui risposte suggerite e risposte con input vocale. Per ulteriori informazioni, scopri come aggiungere funzionalità specifiche per i dispositivi indossabili alla notifica.
Anatomia delle notifiche
Il design di una notifica è determinato 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.
Le parti più comuni di una notifica sono indicate nella figura 7, come segue:
- Icona piccola: obbligatoria; impostala utilizzando
setSmallIcon(). - Nome dell'app: fornito dal sistema.
- Timestamp: fornito dal sistema, ma puoi eseguirne l'override utilizzando
setWhen()o nasconderlo utilizzandosetShowWhen(false). - Icona grande: facoltativa; di solito viene utilizzata solo per le foto dei contatti.
Non utilizzarlo per l'icona dell'app. Impostalo utilizzando
setLargeIcon(). - Titolo: facoltativo; impostato utilizzando
setContentTitle(). - Testo: facoltativo; impostato utilizzando
setContentText().
Ti consigliamo vivamente di utilizzare i modelli di sistema per garantire la compatibilità del design su tutti i dispositivi. Se necessario, puoi creare un layout di notifica personalizzato.
Per saperne di più su come creare una notifica con queste funzionalità e altro ancora, consulta Crea una notifica.
Azioni di notifica
Sebbene non sia obbligatorio, è buona norma 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.
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 sugli intent.
L'aggiunta di pulsanti di azione è spiegata in dettaglio in Crea una notifica.
Richiedi 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é l'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 venga sbloccato prima che l'app richiami una determinata azione di notifica, passa true a setAuthenticationRequired() durante la creazione dell'azione di notifica, come mostrato nello snippet di codice seguente:
val intent = Intent( context, null /** Replace with a valid target activity */ ) val moreSecureNotification = NotificationCompat.Action.Builder( 0, "Reply", PendingIntentCompat.getActivity(context, 0, intent, PendingIntent.FLAG_NO_CREATE, false) ) // 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 essere visualizzati su 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.
Puoi anche creare una notifica espandibile con un'immagine, in stile Posta in arrivo, con una conversazione in chat o con controlli di riproduzione di contenuti multimediali. Per saperne di più, consulta Crea 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é emetterne una nuova o utilizza la notifica in stile Posta in arrivo per mostrare gli aggiornamenti della conversazione.
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 a scomparsa delle notifiche con un riepilogo. L'utente può espandere progressivamente il gruppo di notifiche e ogni notifica al suo interno per visualizzare ulteriori dettagli, come mostrato nella figura 10.
Per scoprire come aggiungere notifiche a un gruppo, consulta Crea 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 uditive 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 in base all'app. In pratica, ogni app ha un solo canale su Android 7.1 e versioni precedenti.
Un'app può avere canali separati per ogni tipo di notifica che emette. 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, in modo che tutte le notifiche pubblicate sullo stesso canale di notifica abbiano lo stesso comportamento. Questo aspetto è descritto nella sezione seguente.
Per saperne di più, consulta la pagina Crea e gestisci canali di notifica.
Importanza delle notifiche
Android utilizza l'importanza di una notifica per determinare quanto la notifica interrompe l'utente visivamente e acusticamente. Più alta è l'importanza di una notifica, più questa è invasiva.
Su Android 7.1 (livello API 25) e versioni precedenti, l'importanza di una notifica è determinata dalla sua priority.
Su Android 8.0 (livello API 26) e versioni successive, l'importanza di una notifica è determinata dal valore 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.
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: viene emesso un suono.
Media: non emette alcun suono.
Bassa: non viene emesso alcun suono e la notifica non viene visualizzata nella barra di stato.
Tutte le notifiche, indipendentemente dall'importanza, vengono visualizzate in posizioni della UI di sistema non invasive, ad esempio nel riquadro di riepilogo 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 l'audio e la vibrazione per tutte le notifiche. Le notifiche vengono comunque visualizzate normalmente nell'interfaccia utente di sistema, a meno che l'utente non specifichi diversamente.
In modalità Non disturbare sono disponibili tre livelli:
- Silenzio totale: blocca tutti i suoni e le vibrazioni, inclusi quelli di sveglie, musica, video e giochi.
- Solo sveglie: blocca tutti i suoni e le vibrazioni, ad eccezione delle sveglie.
- Solo con priorità: gli utenti possono configurare quali categorie a livello di sistema possono interromperli, ad esempio solo sveglie, promemoria, eventi, chiamate o messaggi. Per i messaggi e le chiamate, gli utenti possono filtrare in base al mittente o al chiamante, come mostrato nella Figura 13.
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 della modalità Non disturbare canale per canale. Ad esempio, un'app per pagamenti 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 quando è in modalità prioritaria.
Sui dispositivi con Android 7.1 (livello API 25) e versioni precedenti, gli utenti possono consentire le notifiche in base all'app, anziché al 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 media player. Questa notifica non può essere ignorata come le altre. Per rimuovere la notifica, il servizio deve essere interrotto o rimosso dallo stato in primo piano.
Per saperne di più, consulta Servizi in primo piano. Se stai creando un media player, leggi anche Riproduzione di contenuti multimediali in background.
Comportamenti delle notifiche
Android 16.0, livello API 36
Le notifiche ora vengono raggruppate automaticamente per conto dell'app.
Le seguenti notifiche vengono raggruppate automaticamente:
- Notifiche senza riepilogo
- Notifiche senza notifiche secondarie
- Notifiche con una o un numero ridotto di notifiche secondarie
Android 15.0, livello API 35
Attenuazione
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 dell'audio e l'intensità della vibrazione per le notifiche ripetitive per un massimo di due minuti.
Le notifiche critiche che richiedono audio e feedback aptico per attirare l'attenzione non sono soggette al raffreddamento. L'utente può disattivare l'attenuazione delle notifiche nelle Impostazioni.