L'initiative "Contacts et conversations" est une initiative Android pluriannuelle qui vise à mettre en avant les contacts et les conversations dans les surfaces système du téléphone. Cette priorité est basée sur le fait que la communication et l'interaction avec d'autres personnes restent le domaine fonctionnel le plus apprécié et le plus important pour la majorité de nos utilisateurs, toutes catégories démographiques confondues.
Un certain nombre de fonctionnalités ont été introduites dans Android 11 pour soutenir l'initiative "Contacts et conversations".
Espace de conversation
Sur les appareils portables, une section distincte située en haut de l'onglet des notifications contient uniquement les conversations en temps réel avec des personnes (comme les appels et les messages de chat, y compris les chats de groupe). Sur de nombreux téléphones, les notifications de cet espace ont un aspect et un comportement différents des notifications qui ne sont pas des conversations :
- Le design est différent, avec un accent mis sur l'avatar représentant les personnes, combiné à l'application qui gère la conversation.
- Si l'utilisateur appuie sur la notification, la conversation s'ouvre dans l'application (ou dans une bulle, si la conversation était déjà dans une bulle). S'il appuie sur le curseur de saisie, les nouveaux messages s'affichent en entier dans l'onglet, avec la liste complète des options.
- Des actions spécifiques à la conversation sont proposées (certaines en appuyant de manière prolongée) :
- Marquer cette conversation comme prioritaire
- Promouvoir cette conversation en bulle (ne s'affiche que si l'application est compatible avec les bulles)
- Couper le son des notifications pour cette conversation
- Définissez des sons ou des vibrations personnalisés pour cette conversation
Conversations dans les bulles
À partir d'Android 11, les bulles peuvent être lancées à partir des notifications de la section "Conversations". Seules les notifications associées à un raccourci peuvent s'afficher dans une bulle. Les conversations s'affichent automatiquement sous forme de bulles si elles sont marquées comme importantes ou si elles sont déclenchées pour s'afficher sous forme de bulles dans l'onglet des notifications.
Raccourcis de conversation
Les raccourcis vers les conversations s'affichent dans le lanceur d'applications et à côté des raccourcis de partage de longue durée dans la Sharesheet.
Consignes concernant les API
Cette section décrit les API permettant d'ajouter la prise en charge de l'espace fourni par le système qui affiche les personnes et les conversations dans votre application.
Raccourcis pour les conversations
Pour participer à cette initiative axée sur les conversations, les applications doivent fournir au système des raccourcis persistants. Nous vous recommandons vivement d'utiliser des raccourcis de partage persistants. Si nécessaire, vous pouvez utiliser des raccourcis dynamiques dans Android 11, mais nous pourrions supprimer cette option à l'avenir.
Pour publier un raccourci dans la conversation, appelez les méthodes ShortcutManagerCompat setDynamicShortcuts(), addDynamicShortcuts() ou pushDynamicShortcut() (qui gère automatiquement la limite de raccourcis pour le développeur). Ce raccourci doit être de longue durée et comporter des données Person associées à une ou plusieurs personnes, identifiant les autres participants à la conversation. Nous vous recommandons également de définir LocusIdCompat.
Si une conversation n'existe plus, l'application peut supprimer le raccourci avec removeLongLivedShortcuts(). Le système supprime alors toutes les données associées à la conversation.
Bien que les raccourcis puissent être supprimés, les applications ne doivent pas supprimer les raccourcis mis en cache, sauf en cas d'absolue nécessité. Un raccourci est probablement mis en cache, car l'utilisateur a interagi avec lui pour modifier son expérience. La suppression du raccourci annule ces modifications, ce qui peut frustrer l'utilisateur.
Notifications de conversation
Une notification est considérée comme une notification de conversation si les conditions suivantes sont remplies :
La notification utilise
MessagingStyle.(Uniquement si l'application cible Android 11 ou une version ultérieure) La notification est associée à un raccourci de partage dynamique ou mis en cache longue durée valide. La notification peut définir cette association en appelant
setShortcutId()ousetShortcutInfo(). Si l'application cible Android 10 ou une version antérieure, la notification n'a pas besoin d'être associée à un raccourci, comme indiqué dans la section Options de remplacement.L'utilisateur n'a pas rétrogradé la conversation de la section "Conversation" via les paramètres du canal de notification au moment de la publication.
Utiliser LocusIdCompat
L'intelligence sur l'appareil détermine les conversations susceptibles d'intéresser l'utilisateur. Parmi les signaux les plus importants figurent la récence et la fréquence des sessions de conversation dans chaque conversation. Le système connaît les interactions avec une conversation à partir des raccourcis du lanceur d'applications ou d'une notification si elles sont correctement taguées. Toutefois, le système n'a pas connaissance des conversations qui se sont déroulées entièrement dans l'application, sauf si ces interactions sont également taguées. Nous vous recommandons donc vivement d'associer un LocusIdCompat au raccourci et d'annoter l'activité au sein de l'application ou le fragment avec l'LocusIdCompat associé. Utilisez LocusIdCompat pour permettre au système de suggestions de classer correctement la conversation et d'afficher l'heure exacte de la dernière interaction de l'utilisateur (y compris les interactions dans l'application) avec une conversation. Si vous utilisez setShortcutInfo() pour associer la conversation à un raccourci, le système de conversations associe automatiquement l'élément LocusIdCompat approprié.
Exigences concernant l'espace de conversation pour les applications ciblant Android 10 ou version antérieure
Si une application ne cible pas Android 11, ses messages peuvent toujours s'afficher dans l'espace de conversation. Toutefois, l'application doit toujours répondre à certaines exigences. Cette section décrit les exigences applicables à ces applications et le comportement de remplacement si l'application ne répond pas aux exigences.
Pour participer à l'espace de messagerie, l'application doit implémenter des notifications MessagingStyle, et les notifications doivent référencer un raccourci de longue durée à partir de la notification publiée au moment de la publication de la notification. Les notifications qui répondent à ces exigences s'affichent dans l'espace de conversation avec le comportement suivant :
- La notification s'affiche sous forme de conversation.
- Le bouton Bulle est proposé, s'il est implémenté.
- Les fonctions spécifiques à la conversation sont proposées de manière intégrée.
Si la notification ne répond pas à ces exigences, la plate-forme utilise des options de remplacement pour la mettre en forme. Si une notification répond aux exigences de l'un ou l'autre des cas de remplacement, elle s'affiche dans l'espace de conversation avec une mise en forme spéciale. Si la notification n'est éligible à aucune des options de remplacement, elle ne s'affiche pas dans l'espace de conversation.
Solution de secours : si MessagingStyle est utilisé, mais qu'aucun raccourci n'est fourni
Si l'application cible Android 10 ou une version antérieure et qu'une notification utilise MessagingStyle, mais n'associe pas le message à un raccourci, la notification s'affiche dans l'espace de conversation avec le comportement suivant :
- La notification s'affiche sous forme de conversation.
- Aucun bouton de bulle n'est proposé
- Aucune fonction spécifique aux conversations n'est proposée de manière intégrée.
Solution de secours : si MessagingStyle n'est pas utilisé, mais que l'application est une application de chat reconnue
Si une notification n'utilise pas MessagingStyle, mais que l'application est reconnue par la plate-forme comme une application de chat et que le paramètre category de la notification est défini sur msg, la notification s'affiche dans l'espace de conversation avec le comportement suivant :
- La notification s'affiche dans l'ancien style, antérieur à Android 11.
- Aucun bouton de bulle n'est proposé
- Aucune fonction spécifique à la conversation n'est proposée de manière intégrée.
Conseils, utilisation et tests
Cette section fournit des conseils généraux sur l'utilisation et le test des fonctionnalités de conversation.
Quand dois-je utiliser les conversations ?
Les notifications de conversation et les raccourcis associés sont destinés à améliorer l'expérience utilisateur des conversations en temps réel. Par exemple, les SMS, les chats textuels et les appels téléphoniques sont des conversations en temps réel dans lesquelles les utilisateurs s'attendent à communiquer rapidement. Les utilisateurs n'ont pas cette attente avec les e-mails et les activités sans rapport avec les conversations.
Nous avons permis aux utilisateurs de supprimer une conversation de la section "Conversations" s'ils estiment qu'elle n'est pas au bon endroit.
Bonnes pratiques
Pour augmenter l'engagement et permettre à vos utilisateurs d'interagir plus facilement avec les personnes et les conversations autour de votre application, nous vous recommandons de suivre les bonnes pratiques suivantes.
- Pour vous assurer que les appels manqués s'affichent dans l'onglet de conversation prioritaire et qu'ils apparaissent correctement dans le widget Conversation, mettez en forme les notifications d'appels manqués en tant que
conversationsavec une catégorie définie surCATEGORY_MISSED_CALL. - Fournissez des avatars de haute qualité (104 dp) pour les utilisateurs. Sinon, le système utilise les initiales de la personne, ce qui est moins attrayant.
- N'
cancelpas une notification de conversation avant que l'utilisateur n'ait vu le message. Par exemple, vous pouvez annuler une notification lorsque l'utilisateur ouvre l'application dans une vue où il ne peut pas voir le message ni y répondre. Si l'utilisateur n'a pas la possibilité de lire le message ou d'y répondre, une notification annulée et la bulle associée sont supprimées, ce qui entraîne la perte du contexte de la conversation. - Fournissez un URI
datapour les métadonnées MIME associées aux messages, ce qui vous permet de proposer une expérience plus riche dans les notifications. - Utilisez l'API
Android 12 statuspour rendre les widgets Conversation plus attrayants. - Adoptez les bonnes pratiques suivantes pour les raccourcis de conversation.
- Publiez des raccourcis pour les conversations entrantes et sortantes dans l'application qui n'envoient pas de notifications push. Les messages entrants et sortants d'une même conversation doivent avoir le même ID de raccourci. Utilisez
pushDynamicShortcut()pour publier vos raccourcis et signaler leur utilisation. - Pour éviter de rogner involontairement l'avatar de votre raccourci, fournissez un
AdaptiveIconDrawablepour l'icône du raccourci. Pour en savoir plus, consultez Fournir des images de raccourcis. - Pour aider le système à promouvoir votre raccourci, suivez les consignes pour obtenir le meilleur classement. Votre raccourci est classé dans différentes surfaces système, y compris l'Android Sharesheet s'il s'agit d'un raccourci de partage.
- Assurez-vous que les raccourcis de conversation
intentslancent directement la conversation concernée. - Utilisez les bibliothèques de compatibilité pour définir facilement vos raccourcis comme étant liés à
conversation.
- Publiez des raccourcis pour les conversations entrantes et sortantes dans l'application qui n'envoient pas de notifications push. Les messages entrants et sortants d'une même conversation doivent avoir le même ID de raccourci. Utilisez
Tester les raccourcis et les notifications de conversation
Si vous suivez les consignes concernant l'espace de conversation, les conversations devraient s'afficher automatiquement dans l'espace de conversation. Vous pouvez vérifier que le raccourci est correctement intégré en appuyant de manière prolongée sur la notification. Si l'intégration est effectuée correctement, l'interface utilisateur affiche les actions liées à la conversation. Si la notification n'est pas associée à un raccourci, l'UI affiche un texte indiquant que l'application n'est pas compatible avec les fonctionnalités de conversation.
Les raccourcis ajoutés s'affichent lorsque vous appuyez de manière prolongée sur le lanceur d'applications. Assurez-vous de vérifier que les raccourcis vous redirigent vers le bon emplacement dans votre application.
Les raccourcis de partage ajoutés s'affichent sur la ligne de partage direct de la feuille de partage lorsque vous partagez du contenu que votre raccourci de partage peut recevoir.
Widget Conversation
Dans Android 12, la fonctionnalité de widget Conversation s'appuie sur la fonctionnalité de contacts et de conversations introduite dans Android 11 en permettant aux applications d'afficher l'état des conversations dans les widgets Conversation.
Les widgets Conversation favorisent l'interaction des utilisateurs en leur permettant d'ouvrir facilement des discussions sur l'écran d'accueil. Ces widgets sont des raccourcis améliorés qui permettent aux utilisateurs de revenir efficacement à leurs conversations tout en affichant des extraits de l'état de leur conversation ou d'autres informations pertinentes.
Vérifier que votre application est compatible avec les widgets Conversation
Pour vérifier que votre application est compatible avec les widgets Conversation, vous devez disposer d'au moins deux appareils Android (tous deux équipés d'Android 12) et de deux comptes utilisateur (un sur chaque appareil) pour échanger des messages. Pour les besoins de cette procédure, nous appellerons les comptes "utilisateur A" et "utilisateur B".
Procédez comme suit :
- Sur l'appareil de l'utilisateur A, appuyez de manière prolongée sur le lanceur d'applications. Dans le sélecteur de widgets, appuyez sur un nouveau widget pour une conversation, comme illustré dans la figure 2.
- Faites glisser le widget vers l'écran d'accueil. Une liste des conversations actives ou récentes de l'application de l'utilisateur A doit pouvoir être sélectionnée.
- Maintenant, sur l'appareil de l'utilisateur B, envoyez un message de test à l'utilisateur A.
- De retour sur l'appareil de l'utilisateur A, vérifiez que le widget est mis à jour pour refléter la notification du message de l'utilisateur B.
- Facultatif : demandez à l'utilisateur A et à l'utilisateur B de définir des valeurs d'état différentes pour la conversation afin de vous assurer que leurs widgets les reflètent correctement. Pour obtenir la liste des valeurs d'état, consultez ConversationStatus.