Android 11 permet de personnaliser le comportement et l'emplacement des notifications de conversation dans la nuance de notifications en fonction de la priorité et du niveau d'alerte. Vous pouvez ainsi marquer les conversations comme importantes et lancer des bulles spécifiques à la conversation dans l'espace de conversation.
Basé sur ces fonctionnalités d'Android 11, Android 12 offre deux nouvelles fonctionnalités Conversation:
La fonctionnalité "Conversations récentes" dans les paramètres permet aux utilisateurs de personnaliser le comportement des notifications pour les conversations récentes sans attendre de notification.
Le widget Conversation permet aux utilisateurs d'ouvrir facilement des discussions sur l'écran d'accueil, ce qui leur donne un aperçu rapide des conversations récentes.
Ce document décrit les aspects d'implémentation, de personnalisation et de validation des widgets et des notifications de conversation.
Présentation des notifications de conversation
Android 11 introduit une nouvelle primitive système, la conversation, 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 sur l'ensemble du système via Sharesheet (déjà disponible dans Android 10)
Pour les bulles de conduite(raccourcis sous Android 11). Voir la figure 1.
Pour participer au nouvel espace de conversation au-dessus de la barre de notification (implémenté dans Android 11). Voir la figure 2.
Pour créer des widgets de conversation (implémentés dans Android 12).
Figure 1:Lancement d'une notification sous forme de bulle depuis le panneau des notifications
Figure 2:Espace de conversation situé en haut du volet des notifications
En plus de créer un 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 doivent mettre en œuvre les éléments suivants:
- Un nouvel espace "Conversations" en tant que section distincte au-dessus de la barre de notification.
- Style de notification qui permet et prend en charge le modèle de bulle spécifique à la conversation.
Les partenaires qui implémentent Conversations doivent également implémenter les conversations importantes. Toutefois, l'implémentation de Conversations peut être alignée sur des concepts OEM de nature similaire. Dans l'ensemble, les partenaires sont libres d'aligner la section de conversation sur l'UI système spécifique. Le partenaire n'a pas besoin de modifier ni d'implémenter le code ou les extensions HAL/pilote/kernel.
Consultez l'implémentation de référence suivante dans les sections SystemUI et PeopleService d'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:
Les applications qui sont entièrement compatibles avec l'API Conversation voient leurs notifications dans la nouvelle section et peuvent les personnaliser par conversation plutôt que par NotificationChannel générique.
Les bulles spécifiques aux conversations fonctionnent.
Pour valider l'implémentation, utilisez les tests suivants dans le package de notification:
Tests 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 Conversation
Dans Android 12, la fonctionnalité de widget de conversation s'appuie sur les représentations de conversation créées dans Android 11 (comme décrit dans la section précédente) en permettant aux applications de fournir l'état des conversations affichées dans les widgets de conversation.
Figure 3:Conversations affichées dans les widgets de conversation
Le widget Conversation d'Android 12 favorise la communication 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 de leur état.
Le partenaire doit implémenter les éléments suivants:
- Widget fourni par SystemUI.
- Flux permettant d'ajouter ces widgets depuis l'écran de sélection des widgets.
- Prise en charge du redimensionnement des widgets comme suit :
- Utilisez
onAppWidgetOptionsChanged()
pour remplacer la mise en page par une mise en page de meilleure taille lorsque l'utilisateur modifie la taille de la mise en page ou passe en mode Paysage. - Utilisez
maxResizeHeight
,maxResizeWidth
,minWidth
,minHeight
,minResizeWidth
etminResizeHeight
pour limiter correctement les modifications de taille de vos widgets.
- Utilisez
Tenez compte des dépendances suivantes lorsque vous implémentez des widgets de conversation:
- Le partenaire n'a pas besoin de modifier ni 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 l'implémentation.
- Le processus est le même pour les implémentations de nouveaux appareils et les implémentations de mises à niveau.
- La fonctionnalité Widgets de conversation dépend d'une nouvelle fonctionnalité lancée dans Android 12, qui met en cache les conversations récemment consultées (à partir de notifications, par exemple). Cette dernière fonctionnalité permet d'étendre la liste des conversations qu'un utilisateur peut 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
Vous ne pouvez pas activer ni désactiver la fonctionnalité des widgets de conversation. Toutefois, un partenaire peut modifier les mises en page des modèles de widgets, à condition que les exigences GMS soient respectées.
Validation
Pour vous assurer que votre version de la fonctionnalité fonctionne comme prévu, vérifiez les points suivants:
En appuyant de manière prolongée sur le lanceur d'applications, vous pouvez ajouter un nouveau widget de conversation pour une conversation via le sélecteur de widgets. Voir la figure 4 de l'interface utilisateur du sélecteur de widgets:
Figure 4:UI de l'outil de sélection de widgets pour ajouter un nouveau widget de conversation
Lorsque vous envoyez des notifications à l'appareil à partir de la conversation sélectionnée, le widget est mis à jour pour refléter ces notifications.
Lorsque vous appliquez des états à cette conversation à l'aide de l'API
ConversationStatus
, le widget les reflète.Les utilisateurs peuvent redimensionner les widgets, et les widgets peuvent modifier leur taille en fonction du lanceur actuel. Les mises en page de vos widgets doivent fonctionner correctement 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 de l'API.
cts/tests/app/src/android/app/cts/NotificationManagerTest.java
Tests manuels pour les exigences GMS : Conversations