L'initiative people and conversations est une initiative Android pluriannuelle qui vise à améliorer les personnes et les conversations sur les surfaces système du téléphone. Cette priorité repose sur le fait que la communication et les interactions avec d'autres personnes restent les domaines fonctionnels les plus appréciés et les plus importants pour la majorité de nos utilisateurs, tous groupes démographiques confondus.
Un certain nombre de fonctionnalités ont été introduites dans Android 11 pour soutenir l'initiative concernant les personnes et les conversations.
Espace de conversation
![L'espace de conversation est une zone de notification dédiée aux conversations en temps réel entre utilisateurs.](https://developer.android.com/static/images/guide/topics/ui/conversations-conv-space.png?authuser=8&hl=fr)
Sur les appareils portables, une section distincte au-dessus du volet des notifications ne contient que les conversations en temps réel avec des personnes (appels et messages de chat, y compris les chats de groupe, par exemple). Sur de nombreux téléphones, les notifications de cet espace se présentent et se comportent différemment des notifications autres que des conversations:
- La conception est différente, avec un accent important sur l'avatar représentant les personnes associées à l'application qui porte la conversation.
- Il suffit d'appuyer sur la notification pour ouvrir la conversation dans l'application (ou dans l'info-bulle, si la conversation s'est précédemment affichée dans des bulles). Un appui sur le curseur de saisie permet de développer les nouveaux messages dans le volet pour afficher 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 (uniquement si l'application est compatible avec les bulles)
- Couper le son des notifications pour cette conversation
- Définir un son ou un vibreur personnalisé pour cette conversation
Conversations dans les bulles
![Si une notification répond aux exigences de conversation, la plate-forme la lance sous forme de bulle du panneau des notifications.](https://developer.android.com/static/images/guide/topics/ui/conversations-bubble.gif?authuser=8&hl=fr)
À partir d'Android 11, les bulles peuvent être lancées à partir de notifications de la section "Conversations". Seules les notifications auxquelles un raccourci est associé peuvent s'afficher dans des bulles. Les conversations s'affichent automatiquement si elles sont marquées comme importantes ou si elles s'affichent dans le volet des notifications.
Raccourcis de conversation
Les raccourcis vers les conversations apparaissent dans le lanceur d'applications et dans la Sharesheet, à côté des raccourcis de partage de longue durée.
Consignes relatives aux API
Cette section décrit les API permettant de prendre en charge dans votre application l'espace fourni par le système qui affiche les personnes et les conversations.
Raccourcis des conversations
Pour que cette initiative soit axée sur la conversation, les applications doivent fournir au système des raccourcis de longue durée. Nous vous recommandons vivement d'utiliser des raccourcis de partage de longue durée. Si nécessaire, vous pouvez utiliser des raccourcis dynamiques dans Android 11, mais il se peut que nous supprimions 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 avoir une longue durée de vie et être associé à des données Person
pour 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 soient amovibles, les applications ne doivent pas supprimer les raccourcis mis en cache, sauf si cela est absolument nécessaire. Un raccourci est probablement mis en cache, car l'utilisateur a interagi avec lui pour modifier son expérience. Supprimer le raccourci annulera ces modifications, ce qui entraînera une frustration pour 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 version ultérieure) La notification est associée à un raccourci de partage dynamique ou mis en cache de 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, il n'est pas nécessaire d'associer la notification à un raccourci, comme indiqué dans la section Options de remplacement.Au moment de la publication, l'utilisateur n'a pas rétrogradé la conversation de la section des conversations via les paramètres du canal de notification.
Utiliser LocusIdCompat
L'intelligence artificielle sur l'appareil détermine les conversations qui intéressent le plus l'utilisateur. La récence et la fréquence des sessions de conversation dans chaque conversation font partie des signaux les plus importants. Le système est informé des interactions avec une conversation à partir des raccourcis du lanceur d'applications ou d'une notification, si ceux-ci sont correctement tagués. Toutefois, le système ne sait pas quelles conversations se déroulent 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é ou le fragment dans l'application avec le LocusIdCompat
associé. Utilisez LocusIdCompat
pour permettre au système de suggestion de classer correctement la conversation et d'afficher l'heure correcte de la dernière interaction de l'utilisateur (y compris dans l'application) avec une conversation. Si vous utilisez setShortcutInfo()
pour associer la conversation à un raccourci, le système de conversations associe automatiquement le LocusIdCompat
approprié.
Conditions requises concernant l'espace de conversation pour les applications destinées à 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 conditions requises pour ces applications, ainsi que le comportement de remplacement si l'application ne répond pas à ces exigences.
L'exigence fondamentale pour participer à l'espace de messagerie est que l'application doit implémenter des notifications MessagingStyle
, et celles-ci doivent faire référence à un raccourci de longue durée de la notification publiée au moment de la publication de la notification. Les notifications qui répondent à ces exigences apparaissent dans l'espace de conversation avec le comportement suivant:
- La notification s'affiche dans le style de conversation
- Le bouton Bulle apparaît s'il est implémenté.
- Des fonctions spécifiques aux conversations sont proposées de façon intégrée.
Si la notification ne répond pas à ces exigences, la plate-forme utilise des options de remplacement pour la formater. Si une notification répond aux exigences de l'une ou l'autre des demandes de remplacement, elle s'affiche dans l'espace de conversation avec une mise en forme spéciale. Si la notification ne correspond à aucune des options de remplacement, elle ne s'affiche pas dans l'espace de conversation.
Option de remplacement: 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 dans le style de conversation
- Aucun bouton en forme de bulle n'est proposé.
- Aucune fonction propre aux conversations n'est proposée de façon intégrée.
Option de remplacement: 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 en tant qu'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 en forme de bulle n'est proposé.
- Aucune fonction propre aux conversations n'est proposée de façon intégrée.
Conseils, utilisation et tests
Cette section fournit des conseils généraux sur la façon d'utiliser et de tester les 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 pour lesquelles les utilisateurs s'attendent à communiquer rapidement. Les utilisateurs n'ont pas ces attentes avec des e-mails et des activités sans rapport avec les conversations.
Nous avons donné aux utilisateurs la possibilité de supprimer une conversation donnée de la section des conversations s'ils estiment qu'elle ne se trouve pas au bon endroit.
pour réussir votre lancement
Pour accroître l'engagement et permettre à vos utilisateurs d'interagir plus facilement avec des personnes et des 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 le volet de conversation prioritaire et s'affichent correctement dans le widget de conversion, formatez les notifications d'appel manqué en tant que
conversations
avec une catégorie définie surCATEGORY_MISSED_CALL
. - Fournissez des avatars de haute qualité (104 dp) aux utilisateurs. Sinon, le système utilise les initiales de la personne, ce qui est moins attrayant.
- N'ajoutez pas d'
cancel
à une notification de conversation tant que l'utilisateur n'a pas vu le message. Par exemple, vous pouvez annuler une notification à l'ouverture de l'application dans une vue où l'utilisateur ne peut ni voir, ni traiter le message. Si l'utilisateur n'a pas la possibilité de lire ou de traiter le message, 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
data
pour les métadonnées MIME associées aux messages, ce qui vous permet d'enrichir l'expérience des notifications. - Utilisez l'API
Android 12 status
pour rendre les widgets de conversation plus attrayants. - Adoptez les bonnes pratiques suivantes concernant les raccourcis de conversation.
- Publiez des raccourcis pour les conversations entrantes et sortantes dans l'application qui ne 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 l'utilisation. - Pour éviter le rognage involontaire de votre avatar de raccourci, fournissez un
AdaptiveIconDrawable
pour l'icône de raccourci. Pour en savoir plus, consultez Fournir des images de raccourci. - 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 la Sharesheet Android s'il s'agit d'un raccourci de partage.
- Assurez-vous que les raccourcis de conversation
intents
s'ouvrent directement dans la conversation applicable. - Utilisez les bibliothèques de compatibilité pour définir facilement vos raccourcis comme liés à
conversation
.
- Publiez des raccourcis pour les conversations entrantes et sortantes dans l'application qui ne 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
![Appuyez de manière prolongée sur une conversation pour ouvrir un menu d'actions liées à la conversation.](https://developer.android.com/static/images/guide/topics/ui/conversations-testing.png?authuser=8&hl=fr)
Si vous suivez les consignes de l'espace de conversation, les conversations devraient s'afficher automatiquement dans l'espace 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'UI 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 l'utilisateur appuie de manière prolongée sur le lanceur d'applications. Veillez à vérifier que les raccourcis vous permettent d'accéder au bon endroit dans votre application.
Les raccourcis de partage ajoutés s'affichent sur la ligne de partage direct de la Sharesheet lorsque vous partagez du contenu que votre raccourci de partage peut recevoir.
Widget Conversation
![Conversations affichées dans les widgets Conversation](https://developer.android.com/static/images/guide/topics/ui/conversation-widgets.png?authuser=8&hl=fr)
Dans Android 12, le widget de 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 de conversation favorisent les interactions des utilisateurs en leur permettant d'ouvrir facilement les chats 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 leur état de conversation ou d'autres informations pertinentes.
Vérifier que votre application est compatible avec les widgets de conversation
Pour vérifier que votre application est compatible avec les widgets de 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 ces comptes "utilisateur A" et "utilisateur B".
![UI de l'outil de sélection de widgets permettant d'ajouter un widget Conversation](https://developer.android.com/static/images/guide/topics/ui/widget-picker-conversation.png?authuser=8&hl=fr)
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 de conversations actives ou récentes de l'application de l'utilisateur A doit être sélectionnable.
- 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 aux utilisateurs A et B de définir la conversation sur des valeurs d'état différentes pour que leurs widgets les reflètent correctement. Pour obtenir la liste des valeurs d'état, consultez ConversationStatus.