L'iniziativa Persone e conversazioni è un'iniziativa Android pluriennale che mira a dare maggiore visibilità a persone e conversazioni nelle interfacce di sistema dello smartphone. Questa priorità si basa sul fatto che la comunicazione e l'interazione con altre persone sono ancora l'area funzionale più apprezzata e importante per la maggior parte dei nostri utenti in tutti i gruppi demografici.
In Android 11 sono state introdotte diverse funzionalità per supportare l'iniziativa Persone e conversazioni.
Spazio di conversazione

Sui dispositivi portatili, nella parte superiore della tendina delle notifiche è presente una sezione separata che contiene solo le conversazioni in tempo reale con le persone (ad esempio chiamate e messaggi di chat, incluse le chat di gruppo). Le notifiche in questo spazio hanno un aspetto e un comportamento diversi dalle notifiche non di conversazione su molti smartphone:
- Il design è diverso, con una forte enfasi sull'avatar che rappresenta le persone in combinazione con l'app che porta avanti la conversazione.
- Un tocco sulla notifica apre la conversazione nell'app (o nella bolla, se la conversazione è stata precedentemente visualizzata in bolla), mentre un tocco sul cursore espande i nuovi messaggi nella tendina a tutta lunghezza con l'elenco completo delle opzioni.
- Sono disponibili azioni specifiche per la conversazione (alcune tramite pressione prolungata):
- Contrassegna questa conversazione come prioritaria
- Promuovi questa conversazione in una bolla (mostrata solo se l'app supporta le bolle)
- Disattiva le notifiche per questa conversazione
- Impostare suoni o vibrazioni personalizzati per questa conversazione
Conversazioni in bolle

A partire da Android 11, le bolle possono essere avviate dalle notifiche nella sezione Conversazioni. Solo le notifiche con una scorciatoia associata possono essere visualizzate in bolla. Le conversazioni vengono visualizzate automaticamente come bolle se sono contrassegnate come importanti o se vengono attivate come bolle nell'area delle notifiche.
Scorciatoie per le conversazioni
Le scorciatoie alle conversazioni vengono visualizzate nel launcher e accanto alle scorciatoie di condivisione di lunga durata nel foglio di condivisione.
Linee guida per le API
Questa sezione descrive le API per aggiungere il supporto nella tua app per lo spazio fornito dal sistema che mostra persone e conversazioni.
Scorciatoie per Conversazioni
Per partecipare a questa iniziativa incentrata sulle conversazioni, le app devono fornire al sistema scorciatoie di lunga durata. Ti consigliamo vivamente di utilizzare scorciatoie di condivisione a lunga durata. Se necessario, puoi utilizzare le scorciatoie dinamiche in Android 11, ma potremmo rimuovere questa opzione in futuro.
Per pubblicare una scorciatoia alla conversazione, chiama i metodi ShortcutManagerCompat
setDynamicShortcuts()
, addDynamicShortcuts()
o pushDynamicShortcut()
(che gestisce automaticamente il limite di scorciatoie per lo sviluppatore). Questa scorciatoia deve essere
a lunga durata
e avere dati Person
allegati per una o più persone, che identificano gli altri partecipanti alla
conversazione. Ti consigliamo inoltre di impostare LocusIdCompat
.
Se una conversazione non esiste più, l'app può eliminare la scorciatoia con
removeLongLivedShortcuts()
;
in questo modo, il sistema elimina tutti i dati associati alla conversazione.
Sebbene le scorciatoie siano rimovibili, le app non devono rimuovere le scorciatoie memorizzate nella cache
se non è assolutamente necessario. Una scorciatoia viene probabilmente memorizzata nella cache perché l'utente
ha interagito con essa per modificare la propria esperienza e la rimozione della scorciatoia
annullerà queste modifiche, causando frustrazione per l'utente.
Notifiche delle conversazioni
Una notifica viene considerata una notifica di conversazione se:
La notifica utilizza
MessagingStyle
.(Solo se l'app ha come target Android 11 o versioni successive) La notifica è associata a una scorciatoia di condivisione dinamica o memorizzata nella cache a lunga durata valida. La notifica può impostare questa associazione chiamando
setShortcutId()
osetShortcutInfo()
. Se l'app ha come target Android 10 o versioni precedenti, la notifica non deve essere associata a una scorciatoia, come descritto nella sezione Opzioni di riserva.L'utente non ha declassato la conversazione dalla sezione delle conversazioni tramite le impostazioni del canale di notifica al momento della pubblicazione.
Utilizza LocusIdCompat
L'intelligenza on-device determina le conversazioni che l'utente ha maggiori probabilità
di trovare interessanti. Tra i segnali più importanti ci sono la recenza e la frequenza delle sessioni di conversazione in ogni conversazione. Il sistema è a conoscenza
delle interazioni con una conversazione dalle scorciatoie del launcher o all'interno di una
notifica se sono taggate correttamente. Tuttavia, il sistema non conosce
le conversazioni avvenute interamente nell'app, a meno che queste interazioni non siano
anche taggate. Pertanto, ti consigliamo vivamente di allegare un LocusIdCompat
alla
scorciatoia
e annotare l'attività o il frammento in-app con il
LocusIdCompat
associato. Utilizza LocusIdCompat
per consentire al sistema di suggerimenti di classificare correttamente la conversazione e di mostrare
l'ora corretta dell'ultima interazione dell'utente (incluse
le interazioni in-app) con una conversazione. Se utilizzi
setShortcutInfo()
per associare la conversazione a una scorciatoia, il sistema di conversazioni
allega automaticamente l'LocusIdCompat
appropriato.
Requisiti dello spazio di conversazione per le app che hanno come target Android 10 o versioni precedenti
Se un'app non ha come target Android 11, i suoi messaggi possono comunque essere visualizzati nello spazio di conversazione. Tuttavia, l'app deve comunque soddisfare determinati requisiti. Questa sezione descrive i requisiti per queste app e il comportamento di riserva se l'app non soddisfa i requisiti.
Il requisito principale per la partecipazione allo spazio di messaggistica è che l'app deve
implementare le notifiche MessagingStyle
e le notifiche devono fare riferimento
a una scorciatoia di lunga durata dalla notifica pubblicata al
momento della pubblicazione della notifica. Le notifiche che soddisfano questi requisiti
vengono visualizzate nello spazio di conversazione con questo comportamento:
- La notifica viene visualizzata in stile conversazione
- Se implementato, viene offerto il pulsante Bolla
- Le funzioni specifiche per la conversazione sono offerte in linea
Se la notifica non soddisfa questi requisiti, la piattaforma utilizza opzioni di riserva per formattarla. Se una notifica soddisfa i requisiti di uno dei due casi di fallback, la notifica viene visualizzata nello spazio di conversazione con una formattazione speciale. Se la notifica non è idonea per nessuna delle due opzioni di riserva, non viene visualizzata nello spazio della conversazione.
Fallback: se viene utilizzato MessagingStyle, ma non viene fornita alcuna scorciatoia
Se l'app ha come target Android 10 o versioni precedenti e una notifica utilizza
MessagingStyle
ma non associa il messaggio a una scorciatoia, la notifica
viene visualizzata nello spazio della conversazione con questo comportamento:
- La notifica viene visualizzata in stile conversazione
- Nessun pulsante a bolla offerto
- Nessuna funzione specifica per le conversazioni viene offerta in linea
Fallback: se MessagingStyle non viene utilizzato, ma l'app è un'app di messaggistica riconosciuta
Se una notifica non utilizza
MessagingStyle
, ma l'app è riconosciuta dalla piattaforma come app di messaggistica e il parametro
category
della notifica è impostato su
msg
,
la notifica viene visualizzata nello spazio di conversazione con questo comportamento:
- La notifica viene visualizzata nello stile precedente ad Android 11
- Nessun pulsante a bolla offerto
- Nessuna funzione specifica per le conversazioni viene offerta in linea
Indicazioni, utilizzo e test
Questa sezione fornisce indicazioni generali su come utilizzare e testare le funzionalità di conversazione.
Quando dovrei utilizzare le conversazioni?
Le notifiche delle conversazioni e le scorciatoie correlate hanno lo scopo di migliorare l'esperienza utente delle conversazioni in tempo reale. Ad esempio, SMS, chat di testo e telefonate sono conversazioni in tempo reale in cui gli utenti si aspettano di comunicare rapidamente. Gli utenti non hanno questa aspettativa per le email e le attività non correlate alle conversazioni.
Abbiamo dato agli utenti la possibilità di rimuovere una determinata conversazione dalla sezione delle conversazioni se ritengono che non sia nello spazio giusto.
Best practice
Per aumentare il coinvolgimento e semplificare l'interazione degli utenti con le persone e le conversazioni relative alla tua app, ti consigliamo le seguenti best practice.
- Per assicurarti che le chiamate senza risposta vengano visualizzate nella sezione delle conversazioni con priorità e che vengano visualizzate correttamente nel widget di conversione, formatta le notifiche delle chiamate senza risposta come
conversations
con una categoria impostata suCATEGORY_MISSED_CALL
. - Fornisci avatar di alta qualità (104 dp) per gli utenti, altrimenti il sistema utilizza le iniziali della persona, il che offre un'esperienza meno coinvolgente.
- Non
cancel
una notifica di conversazione prima che l'utente abbia visto il messaggio. Un esempio è l'annullamento di una notifica quando l'app viene aperta in una visualizzazione in cui l'utente non può vedere o rispondere al messaggio. Se l'utente non ha la possibilità di leggere o rispondere al messaggio, la notifica annullata e la relativa bolla vengono rimosse, con conseguente perdita del contesto della conversazione. - Fornisci un
data
URI per i metadati correlati a MIME associati ai messaggi, che ti offre la possibilità di fornire un'esperienza più ricca nelle notifiche. - Utilizza l'API
Android 12 status
per rendere i widget di conversazione più coinvolgenti. - Adotta le seguenti best practice per le
scorciatoie per le conversazioni.
- Pubblica scorciatoie per le conversazioni in-app in entrata e in uscita che
non inviano notifiche push. I messaggi in entrata e in uscita della stessa conversazione devono avere lo stesso ID scorciatoia. Utilizza
pushDynamicShortcut()
per pubblicare le tue scorciatoie e generare report sull'utilizzo. - Per evitare il ritaglio involontario dell'avatar della scorciatoia, fornisci un'immagine
AdaptiveIconDrawable
per l'icona della scorciatoia. Per ulteriori dettagli, consulta Fornire immagini di scorciatoie. - Per aiutare il sistema a promuovere la tua scorciatoia, segui le linee guida per ottenere il miglior ranking. La tua scorciatoia è classificata in diverse sezioni del sistema, inclusa la scheda di condivisione di Android, se si tratta di una scorciatoia di condivisione.
- Assicurati che le scorciatoie per le conversazioni
intents
si aprano direttamente nella conversazione applicabile. - Utilizza le librerie compatibili per impostare comodamente le scorciatoie come correlate a
conversation
.
- Pubblica scorciatoie per le conversazioni in-app in entrata e in uscita che
non inviano notifiche push. I messaggi in entrata e in uscita della stessa conversazione devono avere lo stesso ID scorciatoia. Utilizza
Test delle notifiche delle conversazioni e delle scorciatoie

Se segui le linee guida dello spazio delle conversazioni, le conversazioni dovrebbero apparire automaticamente nello spazio delle conversazioni. Puoi verificare che la scorciatoia sia integrata correttamente tenendo premuto a lungo la notifica. Se l'integrazione viene eseguita correttamente, l'interfaccia utente mostra le azioni relative alla conversazione. Se la notifica non è collegata a una scorciatoia, l'interfaccia utente mostra un testo che indica che l'app non supporta le funzionalità di conversazione.
Le scorciatoie aggiunte vengono visualizzate se premi a lungo Avvio app. Assicurati di verificare che le scorciatoie ti portino alla posizione corretta all'interno dell'app.
Le scorciatoie per la condivisione aggiunte vengono visualizzate nella riga di condivisione diretta del foglio di condivisione quando condividi contenuti che la scorciatoia per la condivisione può ricevere.
Widget conversazioni

In Android 12, la funzionalità Widget conversazioni si basa sulla funzionalità Persone e conversazioni introdotta in Android 11 consentendo alle app di mostrare lo stato della conversazione nei widget conversazioni.
I widget di conversazione promuovono l'interazione degli utenti consentendo loro di aprire facilmente le chat nella schermata Home. Questi widget sono scorciatoie avanzate che consentono agli utenti di tornare in modo efficiente alle loro conversazioni, mostrando snippet dello stato della conversazione o altre informazioni pertinenti.
Verifica che la tua app supporti i widget di conversazione
Per verificare che la tua app supporti i widget di conversazione, devi disporre di almeno due dispositivi Android (entrambi con Android 12) e due account utente (uno su ciascun dispositivo) per scambiare messaggi. Ai fini di questa procedura, chiameremo gli account "utente A" e "utente B".

Completa i seguenti passaggi:
- Sul dispositivo dell'utente A, premi a lungo l'app di avvio. Nel selettore dei widget, tocca un nuovo widget per una conversazione, come mostrato nella Figura 2.
- Trascina il widget nella schermata Home. Deve essere selezionabile un elenco di conversazioni attive o recenti dall'app dell'utente A.
- Ora, sul dispositivo dell'utente B, invia un messaggio di prova all'utente A.
- Sul dispositivo dell'utente A, verifica che il widget sia aggiornato per riflettere la notifica del messaggio dell'utente B.
- (Facoltativo) Chiedi all'utente A e all'utente B di impostare la conversazione su valori di stato diversi per assicurarti che i widget li riflettano correttamente. Per un elenco dei valori di stato, vedi ConversationStatus.