L'iniziativa "Persone e conversazioni" è un'iniziativa pluriennale di Android che mira a migliorare le persone e le conversazioni nelle superfici dello smartphone di sistema. Questa priorità si basa sul fatto che la comunicazione e l'interazione con altre persone sono ancora l'area funzionale più preziosa e importante per la maggior parte dei nostri utenti in tutti i gruppi demografici.
In Android 11 sono state introdotte alcune funzionalità a supporto dell'iniziativa People and Conversations.
Spazio per le conversazioni
![Lo spazio di conversazione è un'area di notifica dedicata per le conversazioni in tempo reale tra persone.](https://developer.android.com/static/images/guide/topics/ui/conversations-conv-space.png?hl=it)
Sui dispositivi portatili, nella parte superiore dell'area notifiche è presente una sezione separata contenente 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 diverso rispetto alle notifiche che non riguardano le conversazioni su molti telefoni:
- Il design è diverso, con una forte enfasi sull'avatar che rappresenta le persone e sull'app che trasmette la conversazione.
- Toccando la notifica si apre la conversazione nell'app (o il bolla se la conversazione è stata precedentemente contrassegnata come bolla) mentre un tocco sul cursore del testo espande i nuovi messaggi nell'area per intero con l'elenco completo delle opzioni.
- Vengono offerte azioni specifiche per le conversazioni (alcune tramite pressione prolungata):
- Contrassegna questa conversazione come priorità
- Promuovi questa conversazione come fumetto (visualizzata solo se l'app supporta le bolle)
- Silenzia le notifiche per questa conversazione
- Imposta suoni o vibrazioni personalizzati per questa conversazione
Conversazioni nelle bolle
![Se una notifica soddisfa i requisiti della conversazione, la piattaforma la avvia come fumetto dal riquadro di notifica a scomparsa.](https://developer.android.com/static/images/guide/topics/ui/conversations-bubble.gif?hl=it)
A partire da Android 11, è possibile avviare le bolle dalle notifiche nella sezione Conversazioni. Puoi mostrare le bolle solo per le notifiche con una scorciatoia associata. Mostra le bolle delle conversazioni automaticamente se sono contrassegnate come importanti o vengono attivate come bolle nell'area delle notifiche.
Scorciatoie per le conversazioni
Le scorciatoie alle conversazioni vengono visualizzate nell'Avvio app e accanto a scorciatoie di lunga durata, scorciatoie di condivisione nel foglio di condivisione.
Linee guida relative all'API
Questa sezione descrive le API che consentono di aggiungere supporto nella tua app per lo spazio fornito dal sistema in cui vengono mostrate persone e conversazioni.
Scorciatoie per le conversazioni
Per partecipare a questa iniziativa incentrata sulla conversazione, le app devono fornire al sistema scorciatoie di lunga durata. Consigliamo vivamente di utilizzare scorciatoie di condivisione di lunga durata. Se necessario, puoi utilizzare le scorciatoie dinamiche in Android 11, ma potremmo rimuovere questa opzione in futuro.
Per pubblicare una scorciatoia nella conversazione, chiama i metodi ShortcutManagerCompat
setDynamicShortcuts()
, addDynamicShortcuts()
o pushDynamicShortcut()
(che gestisce automaticamente il limite di scorciatoie per lo sviluppatore). Questa scorciatoia deve essere
di lunga durata
e includere dati di Person
per una o più persone, in modo da identificare 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, a meno che non sia assolutamente necessario; una scorciatoia viene probabilmente memorizzata nella cache perché l'utente ha interagito con la scorciatoia per modificare la propria esperienza. Se rimuovi la scorciatoia, queste modifiche verranno annullate, causando frustrazione per gli utenti.
Notifiche delle conversazioni
Una notifica viene considerata come notifica di conversazione se si verificano le seguenti condizioni:
Per la notifica viene usato
MessagingStyle
.(Solo se l'app ha come target Android 11 o versioni successive) La notifica è associata a una scorciatoia per la condivisione dinamica o memorizzata nella cache valida di lunga durata. 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 spiegato nella sezione Opzioni di riserva.L'utente non ha retrocesso la conversazione dalla sezione delle conversazioni tramite le impostazioni del canale di notifica al momento della pubblicazione.
Utilizza LocusIdCompat
L'intelligence on-device determina le conversazioni a cui è più probabile
che l'utente sia interessato. Tra gli indicatori più importanti ci sono la recency e la frequenza delle sessioni di conversazione in ogni conversazione. Il sistema conosce le interazioni con una conversazione tramite le scorciatoie di Avvio app o all'interno di una notifica, se sono codificate correttamente. Tuttavia, il sistema non conosce le conversazioni che si sono verificate interamente nell'app, a meno che anche queste interazioni non siano codificate. Ti consigliamo quindi di allegare un LocusIdCompat
alla
scorciatoia
e annotare l'attività in-app o il frammento con la
LocusIdCompat
associata. Utilizza LocusIdCompat
per attivare il sistema di suggerimenti per classificare correttamente la conversazione e per consentire al sistema di visualizzare 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 il valore LocusIdCompat
appropriato.
Requisiti dello spazio per le conversazioni per le app destinate ad Android 10 o versioni precedenti
Se un'app non ha come target Android 11, i relativi messaggi possono comunque essere visualizzati nello spazio di conversazione. Tuttavia, l'app deve soddisfare determinati requisiti. In questa sezione vengono descritti 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
, che devono fare riferimento a una scorciatoia di lunga durata della notifica pubblicata al momento della pubblicazione. Le notifiche che soddisfano questi requisiti
vengono visualizzate nello spazio di conversazione con questo comportamento:
- La notifica viene visualizzata in stile di conversazione
- Viene visualizzato il pulsante Bolla, se implementato.
- Le funzioni specifiche per le conversazioni sono offerte in linea
Se la notifica non soddisfa questi requisiti, la piattaforma utilizza le opzioni di riserva per formattarla. Se una notifica soddisfa i requisiti di una delle due richieste di riserva, 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 di conversazione.
Di riserva: se si utilizza 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 mostrata nello spazio di conversazione con questo comportamento:
- La notifica viene visualizzata in stile di conversazione
- Non viene offerto un pulsante a fumetto
- Nessuna funzione specifica per le conversazioni offerta in linea
Di riserva: se MessagingStyle non viene utilizzato, ma l'app è un'app di messaggistica riconosciuta
Se una notifica non usa MessagingStyle
, ma l'app viene 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 questo comportamento:
- Le notifiche vengono visualizzate nel vecchio stile precedente ad Android 11
- Non viene offerto un pulsante a fumetto
- Nessuna funzione specifica per le conversazioni offerta in linea
Linee 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 delle conversazioni e le relative scorciatoie 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 queste aspettative riguardo a email e attività non correlate alle conversazioni.
Abbiamo dato agli utenti la possibilità di rimuovere una determinata conversazione dalla sezione dedicata se non ritengono che si trovi nello spazio giusto.
Best practice
Per aumentare il coinvolgimento e semplificare l'interazione degli utenti con persone e conversazioni nell'app, ti consigliamo di attenerti alle seguenti best practice.
- Per fare in modo che le chiamate senza risposta vengano visualizzate nell'area delle conversazioni
con priorità e correttamente nel
widget di conversione, formatta gli avvisi per le chiamate senza risposta
come
conversations
con una categoria impostata suCATEGORY_MISSED_CALL
. - Fornisci avatar di alta qualità (104 dp) agli utenti; in caso contrario, il sistema utilizza le iniziali della persona, il che comporta un'esperienza meno coinvolgente.
- Non inviare
cancel
notifiche di conversazione prima che l'utente non abbia visto il messaggio. Ad esempio, l'annullamento di una notifica all'apertura dell'app in una vista in cui l'utente non può vedere o gestire il messaggio. Se all'utente non viene offerta la possibilità di leggere o risolvere il messaggio, la notifica annullata e il fumetto associato vengono rimossi, con la conseguente perdita del contesto della conversazione. - Fornisci un URI
data
per i metadati correlati alla MIME associati ai messaggi, che ti consente di offrire un'esperienza più completa 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 prevedono notifiche push. I messaggi in arrivo e in uscita della stessa
conversazione devono avere lo stesso ID scorciatoia. Utilizza
pushDynamicShortcut()
per pubblicare le scorciatoie e generare report sull'utilizzo. - Per evitare di ritagliare involontariamente l'avatar della scorciatoia, inserisci un elemento
AdaptiveIconDrawable
per l'icona della scorciatoia. Per ulteriori dettagli, consulta la sezione Fornire immagini di scorciatoie. - Per aiutare il sistema a promuovere la scorciatoia, segui le linee guida per ottenere il miglior ranking possibile. La scorciatoia viene classificata in diverse piattaforme di sistema, incluso il foglio di condivisione di Android, se si tratta di una scorciatoia per la condivisione.
- Assicurati che le scorciatoie di conversazione
intents
vengano avviate 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 prevedono notifiche push. I messaggi in arrivo e in uscita della stessa
conversazione devono avere lo stesso ID scorciatoia. Utilizza
Test delle notifiche delle conversazioni e delle scorciatoie
![Se premi a lungo su una conversazione, si apre un menu di azioni relative alla conversazione.](https://developer.android.com/static/images/guide/topics/ui/conversations-testing.png?hl=it)
Se segui le linee guida dello spazio di conversazione, le conversazioni dovrebbero apparire automaticamente nello spazio di conversazione. Puoi verificare che la scorciatoia sia integrata correttamente premendo a lungo sulla notifica. Se l'integrazione è eseguita correttamente, l'interfaccia utente mostra le azioni relative alle conversazioni. Se la notifica non è collegata a una scorciatoia, la UI mostra un testo che indica che l'app non supporta le funzionalità di conversazione.
Le scorciatoie aggiunte vengono visualizzate premendo a lungo in Avvio applicazioni. Assicurati di verificare che le scorciatoie ti indirizzino alla posizione corretta all'interno dell'app.
Le scorciatoie di condivisione aggiunte vengono mostrate nella riga di condivisione diretta del foglio di condivisione durante la condivisione di contenuti che la scorciatoia per la condivisione può ricevere.
Widget conversazioni
![Conversazioni visualizzate nei widget Conversazione](https://developer.android.com/static/images/guide/topics/ui/conversation-widgets.png?hl=it)
In Android 12, la funzionalità Widget conversazione si basa sulla funzionalità Persone e conversazione introdotta in Android 11 consentendo alle app di visualizzare lo stato delle conversazioni nei widget Conversazione.
I widget di conversazione promuovono l'interazione degli utenti consentendo loro di aprire facilmente le chat sulla schermata Home. Questi widget sono scorciatoie avanzate che consentono agli utenti di tornare in modo efficiente alle conversazioni, mostrando snippet dello stato delle conversazioni o altre informazioni pertinenti.
Verifica che l'app supporti i widget conversazioni
Per verificare che la tua app supporti i widget di conversazione, devi avere almeno due dispositivi Android (entrambi con Android 12) e due account utente (uno su ciascun dispositivo) per lo scambio di messaggi. Ai fini di questa procedura, chiameremo gli account "utente A" e "utente B".
![UI del selettore widget per aggiungere un nuovo widget conversazione](https://developer.android.com/static/images/guide/topics/ui/widget-picker-conversation.png?hl=it)
Completa i seguenti passaggi:
- Sul dispositivo dell'utente A, premi a lungo in 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, invia un messaggio di prova all'utente A sul dispositivo dell'utente B.
- Tornando sul dispositivo dell'utente A, verifica che il widget sia aggiornato in modo da riflettere la notifica del messaggio dell'utente B.
- (Facoltativo) Fai in modo che sia l'utente A sia l'utente B impostino la conversazione su valori di stato diversi per assicurarti che i loro widget li riflettano correttamente. Per un elenco dei valori di stato, consulta ConversationStatus.