Notifiche di conversazione e widget

Android 11 aggiunge il supporto per la personalizzazione del comportamento e del posizionamento delle notifiche di conversazione nell'ombra Notifiche in base alla priorità e al livello di avviso, consentendo di contrassegnare le conversazioni come importanti e di avviare bolle specifiche della conversazione nello spazio di conversazione.

Basandosi su queste funzionalità di Android 11, Android 12 offre due nuove funzionalità di Conversazione:

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

  • La funzione Conversation Widget consente agli utenti di aprire facilmente le chat sulla schermata iniziale, offrendo una rapida visualizzazione delle conversazioni recenti.

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

Panoramica delle notifiche di conversazione

Android 11 introduce una nuova primitiva di sistema, la Conversation, che è rappresentata dall'oggetto collegamento di condivisione esistente (che è stato implementato con Android 9).

La primitiva Conversazioni può essere utilizzata come segue:

  • Per condividere i dati delle conversazioni tra le app nel sistema tramite Sharesheet (già in Android 10).

  • Per guidare le bolle ( scorciatoie in Android 11). Vedere la figura 1 .

  • Per partecipare al nuovo spazio di conversazione sopra l'ombra di notifica (implementato in Android 11). Vedere la figura 2 .

  • Per la creazione di widget di conversazione (implementati in Android 12).

    conv_bubbles

    Figura 1: Notifica lanciata come fumetto dal cassetto delle notifiche

    conv_notification

    Figura 2: spazio di conversazione situato sopra l'area di notifica

Oltre a collegarsi al collegamento 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 sopra l'ombra di notifica.
  • Uno stile di notifica che consente e supporta il pattern a bolle specifico della conversazione.

Anche i partner che implementano le conversazioni devono implementare conversazioni importanti. Tuttavia, l'implementazione delle conversazioni può essere allineata con concetti OEM di natura simile. Nel complesso, i partner hanno la libertà di allineare la sezione di conversazione con la loro specifica interfaccia utente di sistema. Il partner non deve modificare o implementare HAL/driver/codice kernel/estensioni.

Vedere la seguente implementazione di riferimento nelle sezioni SystemUI e PeopleService in 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 funzione funzioni come previsto, verifica quanto segue:

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

  2. Le bolle specifiche della conversazione stanno funzionando.

Per convalidare l'implementazione, utilizzare i seguenti test nel pacchetto di notifica:

  • Test CTS.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Test del verificatore CTS.

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

Panoramica dei widget di conversazione

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

conv_widgets

Figura 3: conversazioni visualizzate nei widget di conversazione

La funzione Conversation Widget in Android 12 promuove la connessione consentendo agli utenti di aprire facilmente le chat sulla schermata iniziale. I widget sono scorciatoie avanzate che consentono agli utenti di tornare in modo efficiente alle loro conversazioni mentre mostrano frammenti degli stati della conversazione.

Il partner deve attuare 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:

Prestare attenzione alle seguenti dipendenze durante l'implementazione dei widget di conversazione:

  • Il partner non deve modificare o implementare codice HAL/driver/kernel.
  • Per l'implementazione viene utilizzata l'API di stato, che consente alle app di aggiungere informazioni sullo stato o sulla disponibilità a una conversazione e al widget associato.
  • Il processo è lo stesso sia per le implementazioni di nuovi dispositivi che per l'implementazione dell'aggiornamento.
  • La funzione Widget di conversazione dipende da una nuova funzione lanciata in Android 12, che memorizza nella cache le conversazioni viste di recente (dalle notifiche, ad esempio). Quest'ultima funzionalità consente di espandere l'elenco delle conversazioni che un utente potrebbe potenzialmente aggiungere alla propria schermata iniziale.

Vedere 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 funzione Widget di conversazione non può essere attivata o disattivata. Tuttavia, un partner può modificare i layout dei modelli di widget, purché siano soddisfatti i requisiti GMS.

Convalida

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

  1. Premendo a lungo su Launcher, è possibile aggiungere un nuovo widget di conversazione per una conversazione tramite il selettore di widget. Vedere la figura 4 per l'interfaccia utente del selettore di widget:

    widget_picker

    Figura 4: interfaccia utente del selettore di widget per aggiungere un nuovo widget di conversazione

  2. Quando si inviano notifiche al dispositivo dalla conversazione selezionata, il widget viene aggiornato per riflettere tali notifiche.

  3. Applicando gli stati a quella conversazione utilizzando l'API ConversationStatus , il widget riflette tali stati.

  4. Gli utenti possono ridimensionare i widget e i widget possono modificare le loro dimensioni in base al loro Launcher corrente. I layout dei tuoi widget devono funzionare bene con diverse dimensioni di Launcher su dispositivi diversi e durante il ridimensionamento del widget.

Per convalidare l'implementazione, utilizzare i seguenti test nel pacchetto di notifica:

  • Test CTS (PeopleManagerTest) per le superfici API.

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