Persone e conversazioni

L'iniziativa Persone e conversazioni è un progetto pluriennale di Android che ha lo scopo di mettere in primo piano le persone e le 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 una serie di funzionalità per supportare l'iniziativa relativa a persone e conversazioni.

Spazio di conversazione


Lo spazio di conversazione è un'area di notifica dedicata per le conversazioni in tempo reale tra persone.
Figura 1: lo spazio delle conversazioni.

Sui dispositivi portatili, sopra l'area delle notifiche c'è una sezione separata contenente solo le conversazioni in tempo reale con altre 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 un'enfasi particolare sull'avatar che rappresenta le persone e sull'app che gestisce la conversazione.
  • Un tocco sulla notifica apre la conversazione nell'app (o nella bolla, se la conversazione era precedentemente in bolla) e un tocco sull'apostrofo espande i nuovi messaggi nell'ombra per l'intera lunghezza 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 come bolla (visualizzata solo se l'app supporta le bolle)
    • Disattivare l'audio delle notifiche per questa conversazione
    • Impostare suoni o vibrazioni personalizzati per questa conversazione

Conversazioni in Bubbles

Se una notifica soddisfa i requisiti della conversazione, la piattaforma la avvia come una bolla dal riquadro delle notifiche.
Figura 2: notifica lanciata come bolla dal riquadro di notifica.

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 nel programma di avvio e accanto alle scorciatoie di condivisione di lunga durata nel riquadro di condivisione.

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 scorciatoie di condivisione a lungo termine. Se necessario, puoi utilizzare le scorciatoie dinamiche in Android 11, ma potremmo rimuovere questa opzione in futuro.

Per pubblicare una scorciatoia per la 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 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. Probabilmente una scorciatoia è memorizzata nella cache perché l'utente ha interagito con essa per modificare la propria esperienza e la rimozione della scorciatoia annulla queste modifiche, causando frustrazione nell'utente.

Notifiche conversazione

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) La notifica è associata a una scorciatoia di condivisione dinamica o memorizzata nella cache valida e a lungo termine. La notifica può impostare questa associazione chiamando setShortcutId() o setShortcutInfo(). 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.

Utilizza 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 è a conoscenza delle interazioni con una conversazione dalle scorciatoie del programma di avvio o all'interno di una notifica, se sono taggate correttamente. Tuttavia, il sistema non è a conoscenza delle conversazioni che si sono svolte completamente nell'app, a meno che queste interazioni non siano anche contrassegnate. Pertanto, ti consigliamo vivamente di collegare un LocusIdCompat alla scorciatoia e di 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 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 collega automaticamente l'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 determinati requisiti. Questa sezione descrive i requisiti per queste app e il comportamento alternativo se l'app non soddisfa i requisiti.

Il requisito fondamentale per la partecipazione allo spazio di messaggistica è che l'app debba implementare le notifiche MessagingStyle e che queste facciano riferimento a una scorciatoia di lunga durata della notifica pubblicata 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
  • Il pulsante Bubble è disponibile, se implementato
  • Le funzionalità specifiche per la conversazione sono disponibili 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 mostrata nello spazio di conversazione con il seguente comportamento:

  • La notifica viene visualizzata in stile di conversazione
  • Non viene offerto alcun pulsante a forma di bolla
  • 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

Indicazioni, 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 telefonate sono conversazioni in tempo reale in cui gli utenti si aspettano di comunicare rapidamente. Gli utenti non si aspettano questo tipo di comportamento 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 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 su CATEGORY_MISSED_CALL.
  • Fornisci agli utenti avatar di alta qualità (104 dp); in caso contrario, il sistema userà le iniziali della persona, il che rappresenta un'esperienza meno coinvolgente.
  • Non cancel una notifica della 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 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.
    • Pubblicare scorciatoie per le conversazioni in-app in entrata e in uscita che non inviano notifiche push. I messaggi in entrata e in uscita per la stessa conversazione devono avere lo stesso ID scorciatoia. Utilizza pushDynamicShortcut() per pubblicare le scorciatoie e generare report sull'utilizzo.
    • Per evitare il ritaglio involontario dell'avatar della scorciatoia, fornisci un'immagine di AdaptiveIconDrawable per l'icona della scorciatoia. Per ulteriori 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 scorciatoia viene classificata in diverse piattaforme di sistema, inclusa la scheda di condivisione di Android se si tratta di una scorciatoia per la condivisione.
    • Assicurati che le scorciatoie per aprire una conversazione intents si apriino direttamente nella conversazione applicabile.
    • Utilizza le librerie compat per impostare comodamente le scorciatoie come correlate a conversation.

Testare le notifiche delle conversazioni e le scorciatoie

Se premi a lungo una conversazione, si apre un menu di azioni correlate alla conversazione.
Figura 3: puoi verificare che una notifica di conversazione sia configurata correttamente facendoci un tocco prolungato e controllando che venga visualizzato il menu della conversazione.

Se segui le linee guida per gli spazi 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 è stata eseguita correttamente, l'interfaccia utente mostra le azioni correlate alla conversazione. Se la notifica non è collegata a una scorciatoia, l'interfaccia utente mostra il testo che indica che l'app non supporta le funzionalità di conversazione.

Le scorciatoie aggiunte vengono visualizzate premendo a lungo il pulsante Avvio app. Assicurati di verificare che le scorciatoie ti indirizzino alla posizione corretta all'interno della tua 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

Conversazioni visualizzate nei widget di conversazione
Figura 1: conversazioni visualizzate nei widget di conversazione.

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 degli utenti consentendo loro di aprire facilmente le 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 l'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 ogni dispositivo) per scambiare messaggi. Ai fini di questa procedura, chiameremo gli account "utente A" e "utente B".

Interfaccia utente del selettore di widget per aggiungere un nuovo widget di conversazione
Figura 2: interfaccia utente del selettore di widget per aggiungere un nuovo widget di conversazione.

Completa i seguenti passaggi:

  1. Sul dispositivo dell'utente A, premi a lungo il launcher. Nel selettore dei widget, tocca un nuovo widget per una conversazione, come mostrato nella figura 2.
  2. Trascina il widget nella schermata Home. Deve essere selezionabile un elenco di conversazioni attive o recenti dell'app dell'utente A.
  3. Ora, sul dispositivo dell'utente B, invia un messaggio di prova all'utente A.
  4. Torna sul dispositivo dell'utente A e verifica che il widget sia aggiornato in base alla notifica del messaggio inviata dall'utente B.
  5. (Facoltativo) Chiedi sia all'utente A sia all'utente B di impostare la conversazione su valori di stato diversi per assicurarti che i relativi widget li riflettano correttamente. Per un elenco dei valori di stato, vedi ConversationStatus.