Notifiche e widget di conversazione

Android 11 aggiunge il supporto per personalizzare il comportamento e il posizionamento delle notifiche di conversazione nell'area 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 Conversazione.

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

  • La funzionalità 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 principale, offrendo una rapida visualizzazione delle conversazioni recenti.

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

Panoramica delle notifiche di conversazione

Android 11 introduce una nuova primitiva di sistema, la Conversazione, 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 Conversazione sopra l'area Notifiche (implementato in Android 11). Vedere la Figura 2 .

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

    conv_bubbles

    Figura 1: notifica lanciata come fumetto dal riquadro delle notifiche

    conv_notification

    Figura 2: spazio di conversazione situato nella parte superiore dell'area notifiche

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'area Notifiche.
  • Uno stile di notifica che consente e supporta il modello di bolle specifico della conversazione.

I partner che implementano le conversazioni sono tenuti a implementare anche le 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 della conversazione con la specifica interfaccia utente del sistema. Il partner non deve modificare o implementare HAL/driver/codice kernel/estensioni.

Consulta 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/

Validazione

Per garantire che la versione della funzionalità funzioni come previsto, verificare quanto segue:

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

  2. I fumetti specifici della conversazione funzionano.

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

  • Prove CTS.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Test di verifica 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 funzionalità Conversation Widget in Android 12 promuove la connessione consentendo agli utenti di aprire facilmente le chat sulla schermata principale. I widget sono scorciatoie migliorate che consentono agli utenti di tornare in modo efficiente alle proprie conversazioni mostrando frammenti degli stati della conversazione.

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 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 quelle di aggiornamento.
  • La funzione Widget di conversazione dipende da una nuova funzionalità 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.

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

Validazione

Per garantire che la versione della funzionalità funzioni come previsto, verificare quanto segue:

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

    widget_picker

    Figura 4: interfaccia utente del selettore 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. Quando si applicano 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 attuale Launcher. I layout del widget devono funzionare bene con diverse dimensioni del Launcher su diversi dispositivi e con 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 requisito GMS - Conversazioni.