L'iniziativa Persone e conversazioni è un'iniziativa Android pluriennale che ha lo scopo di migliorare le persone e le conversazioni nelle piattaforme di sistema degli 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 una serie di funzionalità per supportare l'iniziativa relativa a persone e conversazioni.
Spazio di conversazione

Sui dispositivi portatili, c'è una sezione separata nella parte superiore della notifica contenente solo conversazioni in tempo reale con persone (ad esempio chiamate e messaggi di chat, incluse le chat di gruppo). Le notifiche in questo spazio hanno un aspetto e un funzionamento diversi rispetto alle notifiche non relative alle conversazioni su molti smartphone:
- Il design è diverso, con una forte enfasi sull'avatar che rappresenta persone combinate con l'app che svolge la conversazione.
- Un tocco sulla notifica apre conversazione nell'app (o bolla, se conversazione è stata precedentemente messa in bolla), e un tocco sul cursore espande a lunghezza intera i nuovi messaggi nell'area con l'elenco completo delle opzioni.
- Sono disponibili azioni specifiche per la conversazione (alcune con pressione prolungata):
- Contrassegna questa conversazione come prioritaria
- Promuovi questa conversazione a bolle (visibile solo se l'app supporta bolle)
- Silenzia le notifiche per questa conversazione
- Impostare suoni o vibrazioni personalizzati per questa conversazione
Conversazioni in Bubbles

A partire da Android 11, Bubbles può essere avviato 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 viene attivata la visualizzazione come bolle nella schermata di notifica.
Scorciatoie per le conversazioni
Le scorciatoie alle conversazioni vengono visualizzate in Avvio app e accanto lunga, scorciatoie di condivisione in Sharesheet.
Linee guida per le API
Questa sezione descrive le API per aggiungere supporto nella tua app per lo spazio fornito dal sistema che mostra persone e conversazioni.
Scorciatoie per le conversazioni
Per partecipare a questa iniziativa incentrata sulle conversazioni, le app devono fornire al sistema scorciatoie di lunga durata. Ti consigliamo vivamente di utilizzare modelli scorciatoie di condivisione. Se necessaria, puoi usare i campi dinamici scorciatoie in Android 11, ma potremmo rimuovere questa opzione in futuro.
Per pubblicare una scorciatoia nel
conversazione, chiama
Metodi ShortcutManagerCompat
setDynamicShortcuts()
,
addDynamicShortcuts()
,
o pushDynamicShortcut()
(che gestisce automaticamente il limite di scorciatoie per lo sviluppatore). Questa scorciatoia deve essere
di 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.
Anche se le scorciatoie sono rimovibili, le app non devono rimuovere le scorciatoie memorizzate nella cache
a meno che non sia assolutamente necessario; è probabile che una scorciatoia venga memorizzata nella cache perché
ha interagito con quest'ultimo per modificare l'esperienza e la rimozione della scorciatoia
annullare tali modifiche, causando frustrazione per gli utenti.
Notifiche delle conversazioni
Una notifica viene considerata una notifica di conversazione se si verificano le seguenti condizioni:
La notifica utilizza
MessagingStyle
.(Solo se l'app ha come target Android 11 o versioni successive) è associata a un indirizzo IP valido lunga scorciatoia di condivisione dinamica o memorizzata nella cache. 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.Al momento della pubblicazione, l'utente non ha retrocesso la conversazione dalla sezione delle conversazioni tramite le impostazioni del canale di notifica.
Utilizzare LocusIdCompat
L'Intelligenza sul dispositivo determina le conversazioni a cui l'utente è più probabile che sia interessato. Tra gli indicatori più importanti figurano la frequenza e la recidiva delle sessioni di conversazione in ogni conversazione. Il sistema sa
sulle interazioni con una conversazione dalle scorciatoie di Avvio app o all'interno di un
notifica se sono stati taggati correttamente. Tuttavia, il sistema non riconosce
sulle conversazioni che si sono verificate completamente nell'app, a meno che tali interazioni non siano
anche taggati. Pertanto, ti consigliamo vivamente di allegare LocusIdCompat
al
scorciatoia
e annota l'attività in-app o il frammento con
LocusIdCompat
associato. Usa LocusIdCompat
abilitare il sistema di suggerimenti per classificare correttamente la conversazione e abilitare
il sistema per visualizzare l'ora corretta dell'ultima interazione dell'utente (incluse
interazioni in-app) con una conversazione. Se utilizzi
setShortcutInfo()
per associare la conversazione a una scorciatoia, il sistema di
allega automaticamente il LocusIdCompat
appropriato.
Requisiti degli spazi 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 i tuoi requisiti. Questa sezione descrive i requisiti per queste app e il comportamento alternativo se l'app non soddisfa i requisiti.
Il requisito principale per partecipare allo spazio di messaggistica è che l'app deve
implementare MessagingStyle
notifiche, e le notifiche devono fare riferimento
una scorciatoia di lunga durata dalla notifica pubblicata sul
al momento della pubblicazione della notifica. Le notifiche che soddisfano questi requisiti
vengono visualizzate nello spazio di conversazione con il seguente comportamento:
- La notifica viene visualizzata in stile di conversazione.
- Viene offerto il pulsante Bolla, se implementato
- Funzioni specifiche per la conversazione 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 una delle due situazioni di riserva, viene visualizzata nello spazio di conversazione con una formattazione speciale. Se la notifica non è idonea per nessuna delle opzioni di riserva, non viene visualizzata nello spazio di conversazione.
Valore alternativo: 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 mostrato nello spazio della conversazione con questo comportamento:
- La notifica viene visualizzata in stile di conversazione
- È disponibile nessun pulsante a forma di fumetto
- Non sono disponibili funzioni specifiche per le conversazioni in linea
Valore alternativo: 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 mostrata nello spazio di conversazione con il seguente comportamento:
- La notifica viene visualizzata nel vecchio stile precedente ad Android 11
- Non viene offerto alcun pulsante a forma di bolla
- Non sono disponibili funzioni specifiche per le conversazioni in linea
Guida, utilizzo e test
Questa sezione fornisce indicazioni generali su come utilizzare e testare le funzionalità di conversazione.
Quando devo utilizzare le conversazioni?
Le notifiche di conversazione e le scorciatoie correlate hanno lo scopo di migliorare l'esperienza utente delle conversazioni in tempo reale. Ad esempio, SMS, chat di testo, e le telefonate sono conversazioni in tempo reale in cui gli utenti si aspettano di comunicare rapidamente. Gli utenti non possono aspettarsi email o attività non correlate alle conversazioni.
Abbiamo dato agli utenti la possibilità di rimuovere una determinata conversazione dalla sezione delle conversazioni se ritengono che non si trovi nello spazio giusto.
Best practice
Per aumentare il coinvolgimento e consentire agli utenti di interagire più facilmente con le persone e le conversazioni sulla tua app, ti consigliamo le seguenti best practice.
- Per assicurarti che le chiamate perse vengano visualizzate nell'area di conversazione con priorità e nel
widget di conversione, formatta le notifiche delle chiamate non lette come
conversations
con una categoria impostata suCATEGORY_MISSED_CALL
. - Fornire avatar di alta qualità (104 dp) per gli utenti. altrimenti il sistema utilizza le iniziali della persona, un'esperienza meno coinvolgente.
- Non
cancel
una notifica della conversazione prima che l'utente abbia visto il messaggio. Uno. ad esempio l'annullamento di una notifica all'apertura dell'app in una vista dove l'utente non può vedere o gestire il messaggio. Se all'utente non viene data la possibilità di leggere o rispondere al messaggio, una notifica annullata e la relativa bolla associata vengono rimosse, con la conseguente perdita del contesto della conversazione. - Fornisci un URI
data
per i metadati relativi al MIME associati ai messaggi, in modo da avere la possibilità di offrire un'esperienza più completa nelle notifiche. - Utilizza l'API
Android 12 status
per rendere più coinvolgenti i widget di conversazione. - Adotta le seguenti best practice per le scorciatoie per le conversazioni.
- Pubblica scorciatoie per conversazioni in-app in arrivo e in uscita che
non inviare notifiche push. Messaggi in arrivo e in uscita per lo stesso
conversazione deve avere lo stesso ID scorciatoia. Utilizza
pushDynamicShortcut()
per pubblicare le scorciatoie e generare report sull'utilizzo. - Per evitare di tagliare involontariamente l'avatar della scorciatoia, fornisci un
AdaptiveIconDrawable
per l'icona della scorciatoia. Per maggiori dettagli, consulta la sezione Fornire immagini delle scorciatoie. - Per aiutare il sistema a promuovere la tua scorciatoia, segui le linee guida per ottenere il ranking migliore. Il ranking della tua scorciatoia viene effettuato su diverse piattaforme di sistema, tra cui Android Sharesheet se è una scorciatoia per la condivisione.
- Assicurati che le scorciatoie per le conversazioni
intents
avvia direttamente la conversazione. - Usa le compat libs per impostare comodamente le tue scorciatoie come
conversation
.
- Pubblica scorciatoie per conversazioni in-app in arrivo e in uscita che
non inviare notifiche push. Messaggi in arrivo e in uscita per lo stesso
conversazione deve avere lo stesso ID scorciatoia. Utilizza
Testare le notifiche delle conversazioni e le scorciatoie

Se segui le linee guida per gli spazi di conversazione, le conversazioni dovrebbero essere visualizzate automaticamente nello spazio di conversazione. Puoi verificare che la scorciatoia sia integrata correttamente premendo a lungo sulla notifica. Se l'integrazione è stata eseguita correttamente, la UI mostra relative alle conversazioni. Se la notifica non è collegata a una scorciatoia, La UI mostra del testo che indica che l'app non supporta le funzionalità di conversazione.
Le scorciatoie aggiunte vengono visualizzate premendo a lungo il pulsante Avvio app. Verifica che le scorciatoie ti indirizzino alla posizione corretta all'interno dell'app.
Le scorciatoie per la condivisione aggiunte vengono visualizzate nella riga di condivisione diretta della scheda di condivisione quando condividi contenuti che possono essere ricevuti dalla scorciatoia.
Widget conversazioni

In Android 12, la funzionalità Widget conversazione si basa sulla funzionalità Persone e conversazioni introdotta in Android 11, consentendo alle app di mostrare lo stato delle conversazioni nei widget conversazione.
I widget di conversazione promuovono l'interazione dell'utente consentendo di aprirli facilmente chat nella schermata Home. Questi widget sono scorciatoie avanzate che consentono agli utenti di tornare alle conversazioni in modo efficiente, mostrando al contempo snippet dello stato delle conversazioni o altre informazioni pertinenti.
Verificare che la tua app supporti i widget di conversazione
Per verificare che la tua app supporti i widget per le conversazioni, devi avere: 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 su Avvio app. Nel selettore 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 dell'app dell'utente A.
- Ora, sul dispositivo dell'utente B, invia un messaggio di prova all'utente A.
- Tornando sul dispositivo dell'utente A, verifica che il widget sia aggiornato in modo da riflettere la notifica del messaggio dall'utente B.
- (Facoltativo) Impostare l'utente A e l'utente B su una conversazione diversa i valori di stato per garantire che i relativi widget li riflettano correttamente. Per un elenco di per lo stato, consulta ConversationStatus.