Persone e conversazioni

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 è ancora l'area funzionale più apprezzata e importante per la maggior parte dei nostri utenti in tutti i dati demografici.

In Android 11 sono state introdotte diverse funzionalità a supporto dell'iniziativa Persone e conversazioni.

Spazio conversazioni


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

Sui dispositivi portatili, nella parte superiore della tendina delle 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 diversi rispetto alle notifiche non relative alle conversazioni su molti smartphone:

  • Il design è diverso, con una forte enfasi sull'avatar che rappresenta le persone combinato con l'app che ospita la conversazione.
  • Un tocco sulla notifica apre la conversazione nell'app (o nella bolla, se la conversazione è stata precedentemente inserita in una bolla), e un tocco sul cursore espande i nuovi messaggi nella tendina a tutta lunghezza con l'elenco completo delle opzioni.
  • Vengono offerte azioni specifiche per la conversazione (alcune con una pressione prolungata):
    • Contrassegna questa conversazione come prioritaria
    • Promuovi questa conversazione a bolla (mostrata solo se l'app supporta le bolle)
    • Disattiva 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 bolla dal riquadro delle notifiche.
Figura 2: notifica avviata come bolla dal riquadro delle notifiche.

A partire da Android 11, le bolle possono essere avviate dalle notifiche nella sezione Conversazioni. Solo le notifiche con una scorciatoia associata possono essere inserite in una bolla. Le conversazioni vengono inserite automaticamente in una bolla se sono contrassegnate come importanti o se viene attivata la bolla nella tendina delle notifiche.

Scorciatoie per le conversazioni

Le scorciatoie per le conversazioni vengono visualizzate nell'Avvio app 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 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 le scorciatoie di condivisione di lunga durata . Se necessario, puoi utilizzare scorciatoie dinamiche in Android 11, ma potremmo rimuovere questa opzione in futuro.

Per pubblicare una scorciatoia per la conversazione, chiama i ShortcutManagerCompat metodi setDynamicShortcuts(), addDynamicShortcuts(), o pushDynamicShortcut() (che gestisce automaticamente il limite di scorciatoie per lo sviluppatore). Questa scorciatoia deve essere di lunga durata e avere Person dati 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 a meno che non sia 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 all'utente.

Notifiche di conversazione

Una notifica è considerata una notifica di conversazione se sono vere 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 dinamica o memorizzata nella cache di lunga durata valida. 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 delle opzioni di riserva.

  • Al momento della pubblicazione, l'utente non ha declassato la conversazione dalla sezione delle conversazioni tramite le impostazioni del canale di notifica.

Utilizzare LocusIdCompat

L'intelligenza on-device determina le conversazioni a cui è più probabile che l'utente sia interessato. Tra i segnali più importanti ci sono la recente e la frequenza delle sessioni di conversazione in ogni conversazione. Il sistema è a conoscenza delle interazioni con una conversazione dalle scorciatoie dell'Avvio app o all'interno di una notifica se sono taggate correttamente. Tuttavia, il sistema non è a conoscenza delle conversazioni avvenute completamente nell'app, a meno che anche queste interazioni non siano taggate. Pertanto, ti consigliamo vivamente di allegare un LocusIdCompat alla scorciatoia e di annotare l'attività o il fragment in-app con il associato LocusIdCompat. 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 allega automaticamente il LocusIdCompat appropriato.

Requisiti dello spazio conversazioni 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 conversazioni. 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 MessagingStyle notifiche 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 conversazioni con questo comportamento:

  • La notifica viene visualizzata in stile conversazione
  • Viene offerto il pulsante Bolla, se implementato
  • Le funzioni specifiche per la conversazione vengono offerte in linea

Se la notifica non soddisfa questi requisiti, la piattaforma utilizza le opzioni di riserva per formattare la notifica. Se una notifica soddisfa i requisiti di uno dei casi di riserva, viene visualizzata nello spazio conversazioni con una formattazione speciale. Se la notifica non è idonea per nessuna delle opzioni di riserva, non viene visualizzata nello spazio conversazioni.

Riserva: 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 conversazioni con questo comportamento:

  • La notifica viene visualizzata in stile conversazione
  • Non viene offerto alcun pulsante Bolla
  • Non vengono offerte funzioni specifiche per la conversazione in linea

Riserva: se non viene utilizzato MessagingStyle, 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 visualizzata nello spazio conversazioni con questo comportamento:

  • La notifica viene visualizzata in stile precedente ad Android 11
  • Non viene offerto alcun pulsante Bolla
  • Non vengono offerte funzioni specifiche per la conversazione 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 chiamate sono conversazioni in tempo reale in cui gli utenti si aspettano di comunicare rapidamente. Gli utenti non hanno questa aspettativa con 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 persone e conversazioni relative alla tua app, ti consigliamo di seguire le seguenti best practice.

  • Per assicurarti che le chiamate senza risposta vengano visualizzate nella tendina 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 su CATEGORY_MISSED_CALL.
  • Fornisci avatar di alta qualità (104 dp) per gli utenti; in caso contrario, il sistema utilizza le iniziali della persona, il che è 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 si apre l'app 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 bolla associata vengono rimosse, con conseguente perdita del contesto della conversazione.
  • Fornisci un data URI `data` per i metadati relativi a MIME associati ai messaggi, che ti offre la possibilità di fornire un'esperienza più ricca nelle notifiche.
  • Utilizza l'Android 12 status API per rendere i widget di conversazione più coinvolgenti.
  • Adotta le seguenti best practice per le scorciatoie di conversazione.
    • Pubblica 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 segnalare l'utilizzo.
    • Per evitare il ritaglio involontario dell'avatar della scorciatoia, fornisci un AdaptiveIconDrawable per l'icona della scorciatoia. Per maggiori dettagli, consulta Fornire immagini di scorciatoie.
    • Per aiutare il sistema a promuovere la tua scorciatoia, segui le linee guida per ottenere la migliore classificazione. La scorciatoia viene classificata in diverse interfacce di sistema, incluso l'Android Sharesheet 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 di compatibilità per impostare facilmente le scorciatoie come conversation correlate.

Testare le notifiche e le scorciatoie di conversazione

Se tieni premuta una conversazione, si apre un menu di
  azioni correlate alla conversazione.
Figura 3: puoi verificare che una notifica di conversazione sia configurata correttamente premendo a lungo su di essa e controllando che venga visualizzato il menu della conversazione.

Se segui le linee guida dello spazio conversazioni, le conversazioni dovrebbero essere visualizzate automaticamente nello spazio conversazioni. 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 un testo che indica che l'app non supporta le funzionalità di conversazione.

Le scorciatoie aggiunte vengono visualizzate con una pressione prolungata sull'Avvio app. Assicurati di verificare che le scorciatoie ti portino al posto corretto all'interno dell'app.

Le scorciatoie per la condivisione aggiunte vengono visualizzate nella riga di condivisione diretta dello Sharesheet quando condividi contenuti che la scorciatoia per la condivisione può ricevere.

Widget conversazioni

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

In Android 12, la funzionalità Widget conversazioni si basa sulla funzionalità Persone e conversazioni introdotta in Android 11 consentendo alle app di visualizzare lo stato della conversazione nei widget conversazioni.

I widget conversazioni promuovono l'interazione utente 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 al contempo snippet dello stato della conversazione o altre informazioni pertinenti.

Verificare che l'app supporti i widget conversazioni

Per verificare che l'app supporti i widget conversazioni, 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".

UI del selettore dei widget per aggiungere un nuovo widget conversazioni
Figura 2: interfaccia utente del selettore di widget per aggiungere un nuovo widget conversazioni.

Completa i seguenti passaggi:

  1. Sul dispositivo dell'utente A, premi a lungo l'Avvio app. Nel selettore di widget, tocca un nuovo widget per una conversazione, come mostrato nella Figura 2.
  2. Trascina il widget nella schermata Home. Dovrebbe essere possibile selezionare un elenco di conversazioni attive o recenti dall'app dell'utente A.
  3. Ora, sul dispositivo dell'utente B, invia un messaggio di prova all'utente A.
  4. Torna al dispositivo dell'utente A e verifica che il widget sia aggiornato in modo da riflettere la notifica del messaggio dell'utente B.
  5. (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, consulta ConversationStatus.