Notifications de conversation et widgets

Android 11 ajoute la prise en charge de la personnalisation du comportement et du placement des notifications de conversation dans l'ombre des notifications par priorité et niveau d'alerte, permettant aux conversations d'être marquées comme importantes et de lancer des bulles spécifiques à la conversation dans l'espace de conversation.

S'appuyant sur ces fonctionnalités d'Android 11, Android 12 propose deux nouvelles fonctionnalités de conversation :

  • La fonctionnalité Conversations récentes dans Paramètres permet aux utilisateurs de personnaliser le comportement de notification pour les conversations récentes sans attendre de notification.

  • La fonctionnalité Conversation Widget permet aux utilisateurs d'ouvrir facilement des discussions sur l'écran d'accueil, donnant un aperçu rapide des conversations récentes.

Ce document décrit les aspects de mise en œuvre, de personnalisation et de validation des notifications de conversation et des widgets.

Présentation des notifications de conversation

Android 11 introduit une nouvelle primitive système, la Conversation, qui est représentée par l' objet de raccourci de partage existant (qui a été déployé avec Android 9).

La primitive Conversations peut être utilisée comme suit :

  • Pour partager les données de conversations entre les applications du système via Sharesheet (déjà dans Android 10).

  • Pour conduire des bulles ( raccourcis dans Android 11). Voir la figure 1 .

  • Pour participer au nouvel espace Conversation au-dessus de la teinte Notification (implémenté dans Android 11). Voir la figure 2 .

  • Pour créer des widgets de conversation (implémentés dans Android 12).

    conv_bubbles

    Figure 1 : Notification lancée sous forme de bulle depuis le tiroir de notification

    conv_notification

    Figure 2 : Espace de conversation situé en haut du volet de notification

En plus du lien vers le raccourci représentant la conversation, la notification utilise également MessagingStyle pour inclure le dernier message de la conversation dans l'espace Conversation.

Les partenaires GMS sont tenus de mettre en œuvre les éléments suivants :

  • Un nouvel espace Conversations en tant que section distincte au-dessus de la nuance Notification.
  • Un style de notification qui autorise et prend en charge le modèle de bulle spécifique à la conversation.

Les partenaires qui mettent en œuvre les conversations doivent également mettre en œuvre les conversations importantes. Cependant, la mise en œuvre de Conversations peut être alignée sur des concepts OEM de nature similaire. Dans l’ensemble, les partenaires ont la liberté d’aligner la section de conversation sur leur interface utilisateur système spécifique. Le partenaire n'a pas besoin de modifier ou d'implémenter HAL/pilote/code noyau/extensions.

Consultez l’implémentation de référence suivante dans les sections SystemUI et PeopleService dans 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/

Validation

Pour vous assurer que votre version de la fonctionnalité fonctionne comme prévu, vérifiez les points suivants :

  1. Les applications qui prennent entièrement en charge l'API Conversation voient leurs notifications dans la nouvelle section et peuvent personnaliser ces notifications par conversation plutôt que par le NotificationChannel générique.

  2. Les bulles spécifiques à la conversation fonctionnent.

Pour valider l'implémentation, utilisez les tests suivants dans le package de notification :

  • Essais CTS.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Tests du vérificateur CTS.

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

Présentation des widgets de conversation

Dans Android 12, la fonctionnalité Conversation Widget s'appuie sur les représentations de conversation créées dans Android 11 (comme le décrit la section précédente) en permettant aux applications de fournir l'état des conversations affichées dans les widgets de conversation.

conv_widgets

Figure 3 : Conversations affichées dans les widgets de conversation

La fonctionnalité Conversation Widget d’Android 12 favorise la connexion en permettant aux utilisateurs d’ouvrir facilement des discussions sur l’écran d’accueil. Les widgets sont des raccourcis améliorés qui permettent aux utilisateurs de revenir efficacement à leurs conversations tout en affichant des extraits des statuts des conversations.

Le partenaire doit mettre en œuvre les éléments suivants :

  1. Un widget fourni par SystemUI.
  2. Un flux pour ajouter ces widgets à partir de l’écran de sélection des widgets.
  3. Prise en charge du redimensionnement des widgets comme suit :

Soyez conscient des dépendances suivantes lors de la mise en œuvre des widgets de conversation :

  • Le partenaire n'a pas besoin de modifier ou d'implémenter le code HAL/pilote/noyau.
  • L'API Status, qui permet aux applications d'ajouter des informations d'état ou de disponibilité à une conversation et au widget associé, est utilisée pour la mise en œuvre.
  • Le processus est le même pour les implémentations de nouveaux appareils et pour les mises à niveau.
  • La fonctionnalité Conversation Widgets dépend d’une nouvelle fonctionnalité lancée dans Android 12, qui met en cache les conversations récemment vues (à partir de notifications, par exemple). Cette dernière fonctionnalité permet d'élargir la liste des conversations qu'un utilisateur pourrait potentiellement ajouter à son écran d'accueil.

Consultez l’implémentation de référence suivante dans les fichiers SystemUI et 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/

Personnalisation

La fonctionnalité Conversation Widgets ne peut pas être activée ou désactivée. Cependant, un partenaire peut modifier la présentation des modèles de widgets, à condition que les exigences GMS soient satisfaites.

Validation

Pour vous assurer que votre version de la fonctionnalité fonctionne comme prévu, vérifiez les points suivants :

  1. En appuyant longuement sur Launcher, un nouveau widget de conversation pour une conversation peut être ajouté via le sélecteur de widget. Voir la figure 4 pour l'interface utilisateur du sélecteur de widget :

    widget_picker

    Figure 4 : interface utilisateur du sélecteur de widget pour ajouter un nouveau widget de conversation

  2. Lors de l'envoi de notifications à l'appareil à partir de la conversation sélectionnée, le widget est mis à jour pour refléter ces notifications.

  3. Lors de l'application de statuts à cette conversation à l'aide de l'API ConversationStatus , le widget reflète ces statuts.

  4. Les utilisateurs peuvent redimensionner les widgets et les widgets peuvent modifier leur taille en fonction de leur lanceur actuel. La disposition de vos widgets doit bien fonctionner avec différentes tailles de lanceur sur différents appareils et lors du redimensionnement du widget.

Pour valider l'implémentation, utilisez les tests suivants dans le package de notification :

  • Tests CTS (PeopleManagerTest) pour les surfaces API.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Tests manuels pour les exigences GMS - Conversations.