Notifiche e widget di conversazione

Android 11 aggiunge il supporto per la personalizzazione del comportamento e del posizionamento delle notifiche delle conversazioni nella sezione delle notifiche in base a priorità e livello di avviso, consentendo di contrassegnare le conversazioni come importanti e di avviare bolle specifiche per le conversazioni nello spazio delle conversazioni.

Basandosi su queste funzionalità di Android 11, Android 12 offre due nuove funzionalità per le conversazioni:

  • La funzionalità Conversazioni recenti in Impostazioni consente agli utenti di personalizzare il comportamento delle notifiche per le conversazioni recenti senza attendere una notifica.

  • La funzionalità Widget conversazione consente agli utenti di aprire facilmente le chat nella schermata Home, offrendo una rapida visualizzazione delle conversazioni recenti.

Questo documento descrive gli aspetti di implementazione, personalizzazione e convalida di notifiche e widget delle conversazioni.

Panoramica delle notifiche delle conversazioni

Android 11 introduce una nuova primitiva di sistema, la conversazione, rappresentata dall'oggetto scorciatoia di condivisione esistente (implementato con Android 9).

La primitiva Conversazioni può essere utilizzata nel seguente modo:

  • Per condividere i dati di Conversazioni tra le app del sistema tramite Sharesheet (già presente in Android 10).

  • Per le bolle(scorciatoie in Android 11) durante la guida. Vedi Figura 1.

  • Per partecipare al nuovo spazio Conversazione nella parte superiore della tendina delle notifiche (implementato in Android 11). Vedi Figura 2.

  • Per la creazione dei widget conversazioni (implementati in Android 12).

    conv_bubbles

    Figura 1: notifica avviata come bolla dal riquadro delle notifiche

    conv_notification

    Figura 2: spazio Conversazioni nella parte superiore dell'area notifiche

Oltre a collegarsi alla scorciatoia che rappresenta la conversazione, la notifica utilizza anche MessagingStyle per includere l'ultimo messaggio della conversazione nello spazio Conversazione.

I partner GMS sono tenuti a implementare quanto segue:

  • Un nuovo spazio Conversazioni come sezione separata nella parte superiore della barra delle notifiche.
  • Uno stile di notifica che consente e supporta il pattern a bolle specifico per le conversazioni.

I partner che implementano Conversazioni sono tenuti a implementare anche Conversazioni importanti. Tuttavia, l'implementazione di Conversazioni può essere allineata ai concetti OEM di natura simile. In generale, i partner hanno la libertà di allineare la sezione delle conversazioni alla loro UI di sistema specifica. Il partner non deve modificare o implementare HAL/driver/estensioni/codice kernel.

Consulta l'implementazione di riferimento riportata di seguito nelle sezioni SystemUI e PeopleService di AOSP:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Convalida

Per assicurarti che la tua versione della funzionalità funzioni come previsto, verifica quanto segue:

  1. Le app che supportano completamente l'API Conversation visualizzano le notifiche nella nuova sezione e possono personalizzarle per conversazione anziché per NotificationChannel generico.

  2. Le bolle specifiche per le conversazioni funzionano.

Per convalidare l'implementazione, utilizza i seguenti test nel pacchetto di notifiche:

  • Test CTS.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Test di CTS Verifier.

    cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
    
    

Panoramica dei widget conversazioni

In Android 12, la funzionalità Widget conversazioni si basa sulle rappresentazioni delle conversazioni create in Android 11 (come descritto nella sezione precedente) consentendo alle app di fornire lo stato di queste conversazioni visualizzate nei widget conversazioni.

conv_widgets

Figura 3: conversazioni visualizzate nei widget di conversazione

La funzionalità Widget Conversazioni di Android 12 promuove la connessione consentendo agli utenti di aprire facilmente le chat nella schermata Home. I widget sono scorciatoie avanzate che consentono agli utenti di tornare in modo efficiente alle loro conversazioni, mostrando snippet degli stati delle conversazioni.

Il partner deve implementare quanto segue:

  1. Un widget fornito da SystemUI.
  2. Un flusso per aggiungere questi widget dalla schermata di selezione dei widget.
  3. Supporto per il ridimensionamento dei widget come segue:

Tieni presente le seguenti dipendenze quando implementi i widget di conversazione:

  • Il partner non deve modificare o implementare il codice HAL/driver/kernel.
  • Per l'implementazione viene utilizzata l'API Status, che consente alle app di aggiungere informazioni su stato o disponibilità a una conversazione e al widget associato.
  • La procedura è la stessa sia per le nuove implementazioni dei dispositivi sia per l'implementazione dell'upgrade.
  • La funzionalità Widget conversazioni dipende da una nuova funzionalità lanciata in Android 12, che memorizza nella cache le conversazioni visualizzate di recente (ad esempio dalle notifiche). Questa seconda funzionalità consente di espandere l'elenco delle conversazioni che un utente potrebbe potenzialmente aggiungere alla schermata Home.

Consulta la seguente implementazione di riferimento nei file SystemUI e Launcher3:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Personalizzazione

La funzionalità Widget conversazione non può essere attivata o disattivata. Tuttavia, un partner può modificare i layout dei modelli di widget, a condizione che i requisiti di GMS siano soddisfatti.

Convalida

Per assicurarti che la tua versione della funzionalità funzioni come previsto, verifica quanto segue:

  1. Con una pressione prolungata su Avvio app, è possibile aggiungere un nuovo widget Conversazione per una conversazione tramite il selettore di widget. Vedi la Figura 4 per l'interfaccia utente del selettore widget:

    widget_picker

    Figura 4: UI del selettore di widget per aggiungere un nuovo widget Conversazione

  2. Quando vengono inviate notifiche al dispositivo dalla conversazione selezionata, il widget viene aggiornato per riflettere queste notifiche.

  3. Quando applichi gli stati a quella conversazione utilizzando l'API ConversationStatus, il widget riflette questi stati.

  4. Gli utenti possono ridimensionare i widget e questi possono cambiare le proprie dimensioni in base al Launcher corrente. I layout dei widget devono funzionare bene con le diverse dimensioni del launcher su dispositivi diversi e durante il ridimensionamento del widget.

Per convalidare l'implementazione, utilizza i seguenti test nel pacchetto di notifiche:

  • Test CTS (PeopleManagerTest) per le superfici API.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Test manuali per il requisito GMS - Conversazioni.