L'iniziativa Persone e conversazioni è un'iniziativa Android pluriennale volta a 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 rimangono 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à a supporto dell'iniziativa Persone e conversazioni.
Spazio di conversazione
Sui dispositivi portatili, nella parte superiore dell'area notifiche è presente una sezione separata contenente solo le conversazioni in tempo reale con persone (come chiamate e messaggi di chat, incluse le chat di gruppo). Le notifiche in questo settore hanno un aspetto e un comportamento diversi rispetto alle notifiche non relative alle conversazioni su molti telefoni:
- Il design è diverso, con una forte enfasi sull'avatar che rappresenta le persone combinate con l'app che trasporta la conversazione.
- Un tocco sulla notifica apre la conversazione nell'app (o una bolla, se la conversazione era visualizzata in precedenza con il fumetto) e un tocco sul cursore di testo espande a figura intera i nuovi messaggi nell'area con l'elenco completo delle opzioni.
- Vengono proposte azioni specifiche per la conversazione (alcune esercitando una pressione prolungata):
- Contrassegna questa conversazione come prioritaria
- Promuovi questa conversazione a bolle (disponibile solo se l'app supporta le bolle)
- Silenzia le notifiche per questa conversazione
- Imposta vibrazioni o suoni personalizzati per questa conversazione
Conversazioni in bolle
A partire da Android 11, puoi avviare Bolle dalle notifiche nella sezione Conversazioni. Solo le notifiche con una scorciatoia associata possono mostrare le bolle. Le conversazioni vengono visualizzate automaticamente se sono contrassegnate come importanti o se vengono attivate per visualizzare le bolle nell'area delle notifiche.
Scorciatoie per le conversazioni
Le scorciatoie per le conversazioni vengono visualizzate in Avvio app e accanto alle scorciatoie di lunga durata nelle scorciatoie di condivisione in Sharesheet.
Linee guida per le API
Questa sezione descrive le API per aggiungere nella tua app il supporto dello spazio fornito dal sistema che mostra 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. Ti 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 delle scorciatoie per lo sviluppatore). Questa scorciatoia deve essere
di lunga durata
e avere i dati Person
allegati per una o più persone, per 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.
Anche se le scorciatoie sono rimovibili, le app non devono rimuovere le scorciatoie memorizzate nella cache a meno che non sia assolutamente necessario. Probabilmente una scorciatoia viene memorizzata nella cache perché l'utente ha interagito con l'applicazione per modificare la propria esperienza. Se la rimuovi, le modifiche verranno annullate, causando frustrazione per l'utente.
Notifiche delle conversazioni
Una notifica viene considerata come 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) La notifica è associata a una scorciatoia per la condivisione di lunga durata dinamica o memorizzata nella cache valida. La notifica può impostare questa associazione chiamando
setShortcutId()
osetShortcutInfo()
. Se l'app ha come target Android 10 o versioni precedenti, non è necessario associare la notifica a una scorciatoia, come spiegato nella sezione Opzioni di riserva.Al momento della pubblicazione, l'utente non ha retrocesso la conversazione dalla sezione relativa alle conversazioni tramite le impostazioni del canale di notifica.
Utilizzare LocusIdCompat
Le informazioni sul dispositivo determinano le conversazioni a cui
è più probabile che l'utente sia interessato. Tra gli indicatori più importanti ci sono l'attualità e la frequenza delle sessioni di conversazione in ogni conversazione. Il sistema conosce le interazioni con una conversazione dalle scorciatoie di Avvio app o all'interno di una notifica se i tag sono corretti. Tuttavia, il sistema non è a conoscenza
delle conversazioni che si sono verificate completamente nell'app, a meno che anche queste interazioni non siano
contrassegnate con tag. Pertanto, ti consigliamo vivamente di collegare un LocusIdCompat
alla
scorciatoia
e di annotare l'attività o il frammento in-app con
l'elemento LocusIdCompat
associato. Utilizza LocusIdCompat
per attivare il sistema di suggerimenti in modo da classificare correttamente la conversazione e 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 LocusIdCompat
appropriato.
Requisiti dello spazio di conversazione 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 della conversazione. Tuttavia, l'app deve comunque soddisfare determinati requisiti. Questa sezione descrive i requisiti per queste app e il comportamento di riserva nel caso in cui l'app non soddisfi i requisiti.
Il requisito fondamentale per la partecipazione allo spazio di messaggistica è che l'app deve implementare le notifiche di MessagingStyle
e queste devono fare riferimento a una scorciatoia di lunga durata della notifica che viene pubblicata nel momento in cui la notifica viene pubblicata. Le notifiche che soddisfano questi requisiti vengono visualizzate nello spazio della conversazione con questo 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 le opzioni di fallback per formattarla. Se una notifica soddisfa i requisiti di uno dei due casi di riserva, viene visualizzata nello spazio della conversazione con una formattazione speciale. Se la notifica non è idonea per nessuna opzione di riserva, non viene visualizzata nello spazio della conversazione.
Di riserva: se viene utilizzato MessagingStyle, ma non vengono fornite scorciatoie
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 della conversazione con questo comportamento:
- La notifica viene visualizzata in stile di conversazione.
- È disponibile nessun pulsante a forma di fumetto
- Nessuna funzione specifica per la conversazione offerta in linea.
Di riserva: se MessagingStyle non viene utilizzato, ma l'app è un'app di messaggistica riconosciuta
Se una notifica non utilizza 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 della conversazione con questo comportamento:
- La notifica viene visualizzata in vecchio stile precedente ad Android 11
- È disponibile nessun pulsante a forma di fumetto
- Nessuna funzione specifica per la conversazione offerta 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 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 possono aspettarsi email e attività non correlate alle conversazioni.
Abbiamo offerto agli utenti la possibilità di rimuovere una determinata conversazione dalla sezione delle conversazioni se non ritengono che si trovi nello spazio giusto.
best practice
Per aumentare il coinvolgimento e consentire agli utenti di interagire più facilmente con persone e conversazioni relative alla tua app, ti consigliamo di seguire le best practice riportate di seguito.
- Per assicurarti che le chiamate perse vengano mostrate nell'area delle conversazioni prioritarie e compaiano correttamente nel widget conversioni, formatta le notifiche per le chiamate senza risposta come
conversations
con la categoria impostata suCATEGORY_MISSED_CALL
. - Fornisci avatar di alta qualità (104 dp) agli utenti; in caso contrario, il sistema utilizza le iniziali delle persone, rendendo l'esperienza meno coinvolgente.
- Non
cancel
inviare una notifica di conversazione prima che l'utente non abbia visto il messaggio. Un esempio è l'annullamento di una notifica quando si apre l'app in una vista in cui l'utente non può vedere o gestire il messaggio. Se all'utente non viene offerta l'opportunità di leggere o gestire il messaggio, la notifica annullata e il fumetto associato vengono rimossi, con conseguente perdita del contesto della conversazione. - Fornisci un
data
URI per i metadati relativi a MIME associati ai messaggi, per avere la possibilità di fornire 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 arrivo e in uscita che
non eseguono notifiche push. I messaggi in entrata e in uscita per la stessa
conversazione devono avere lo stesso ID scorciatoia. Utilizza
pushDynamicShortcut()
per pubblicare le tue scorciatoie e segnalare l'utilizzo. - Per evitare di tagliare involontariamente l'avatar della scorciatoia, fornisci un elemento
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. La tua scorciatoia viene classificata in diverse piattaforme di sistema, tra cui Android Sharesheet se si tratta di una scorciatoia per la condivisione.
- Assicurati che le scorciatoie per la conversazione
intents
vengano avviate direttamente nella conversazione applicabile. - Utilizza le compat libs per impostare comodamente le scorciatoie relative a
conversation
.
- Pubblica scorciatoie per le conversazioni in-app in arrivo e in uscita che
non eseguono notifiche push. I messaggi in entrata e in uscita per la stessa
conversazione devono avere lo stesso ID scorciatoia. Utilizza
Test delle notifiche di conversazione e scorciatoie
Se segui le linee guida relative allo spazio delle conversazioni, le conversazioni dovrebbero apparire automaticamente nello spazio delle conversazioni. Puoi verificare che la scorciatoia sia integrata correttamente tenendo premuto a lungo sulla notifica. Se l'integrazione viene eseguita correttamente, la UI mostra azioni relative alla conversazione. Se la notifica non è collegata a una scorciatoia, l'interfaccia utente mostra del testo che indica che l'app non supporta le funzionalità di conversazione.
Le scorciatoie aggiunte vengono visualizzate con una pressione prolungata 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 della condivisione diretta di Sharesheet quando condividi i contenuti che la tua scorciatoia di condivisione può ricevere.
Widget conversazioni
In Android 12, la funzionalità Widget conversazione si basa sulla funzionalità Persone e conversazioni introdotte in Android 11, che consente 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 alle conversazioni in modo efficiente, mostrando snippet dello stato della conversazione o altre informazioni pertinenti.
Verificare che la tua app supporti i widget di conversazione
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".
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 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 garantire che i loro widget li riflettano correttamente. Per un elenco dei valori relativi allo stato, vedi ConversationStatus.