People and conversations

The people and conversations initiative is a multi-year Android initiative that aims to elevate people and conversations in the system surfaces of the phone. This priority is based on the fact that communication and interaction with other people is still the most valued and important functional area for the majority of our users across all demographics.

A number of new features are introduced in Android 11 to support the people and conversations initiative.

Conversation space

The conversation space is a dedicated notification area for real-time
       conversations between humans.
Figure 1: The conversations space.

On many phones, there will be a separate section on top of the notification shade containing only real-time conversations with people (such as chat messages, including group conversations, and calls). Notifications in this space look and act differently from regular notifications on many phones:

  • The design is different, with a strong emphasis on the avatar representing people combined with the app carrying the conversation.
  • As in Android 10, a tap on the notification opens the conversation in the app (or bubble, if the conversation was previously bubbled), and a tap on the caret will expand the new messages in the shade to full length with the same options as before.
  • Conversation-specific actions are offered (some by long-pressing):
    • Mark this conversation as priority
    • Promote this conversation to bubble (only shown if the app supports bubbles)
    • Silence notifications for this conversation
    • Set custom sounds or vibrations for this conversation

Conversations in Bubbles

If a notification meets the conversation requirements, the platform
       launches it as a bubble from the notification drawer.
Figure 2: Notification being launched as a bubble from the notification drawer.

In Android 11, Bubbles can be started from notifications in the Conversations section. Only notifications with an associated shortcut are able to bubble. Conversations marked as important or triggered to bubble in the notification shade will automatically bubble.

Conversation Shortcuts

Shortcuts to conversations appear in the launcher and alongside long-lived sharing shortcuts in the system sharesheet.

API guidelines

This section describes the APIs for taking advantage of the people and conversations space in your apps.

Shortcuts for Conversations

In order to participate in this new, conversation-centric initiative, apps need to provide the system with long-lived shortcuts. For the present you can use long-lived dynamic shortcuts to surface notifications to the conversation space, but we strongly recommend using long-lived sharing shortcuts; in the future, we expect to require the use of sharing shortcuts.

To publish a shortcut to the conversation, call the existing ShortcutManager methods setDynamicShortcuts(), addDynamicShortcuts(), or pushDynamicShortcut() (which automatically manages the shortcut limit for the developer). This shortcut must be long-lived and have Person data attached for one or more persons, identifying the other participants in the conversation. We also recommend that you set the LocusId for the shortcut and annotate the in-app activities and fragments with that LocusId. Doing so helps the system to accurately rank conversations based on app usage.

If a conversation no longer exists, the app can delete the shortcut with removeLongLivedShortcuts(); doing so causes the system to delete all data associated with the conversation. Although shortcuts are removable, apps should not remove cached shortcuts unless absolutely necessary; a shortcut is probably cached because the user interacted with it to change their experience, and removing the shortcut will undo those changes, leading to user frustration.

Conversation Notifications

A notification is considered as a conversation notification if the following is true:

  • The notification uses MessagingStyle.

  • (Only if the app targets Android 11) The notification is associated with a valid long-lived dynamic or cached sharing shortcut. The notification can set this association by calling setShortcutId() or setShortcutInfo(). If the app targets Android 10 or lower, the notification does not have to be associated with a shortcut, as discussed in the fallback options section.

  • The user has not demoted the conversation from the conversation section via notification channel settings, at the time of posting.

In-app conversations and LocusId

On-device intelligence determines the conversations that the user is most likely to be interested in. Among the most important signals are recency and frequency of conversation sessions in each conversation. The system knows about interactions with a conversation from Launcher shortcuts or within a notification if they are properly tagged. However, the system does not know about conversations that happened fully in the app unless those interactions are also tagged. Thus, we strongly recommend that you attach a LocusId to the shortcut and annotate the in-app activity or fragment with the associated LocusId. Using the LocusId allows the suggestion system to properly rank the conversation. If you use setShortcutInfo() to associate the conversation with a shortcut, the conversations system automatically attaches the appropriate LocusId.

Conversion space requirements for apps that do not target Android 11

If an app does not target Android 11, its messages can still be surfaced in the conversation space. However, the app still must meet certain requirements. This section describes the requirements for those apps, and the fallback behavior if the app does not meet the requirements.

The core requirement for participation in the messaging space is, the app must implement MessagingStyle notifications, and the notifications must reference a long-lived shortcut from the notification that is published at the time the notification is posted. Notifications that meet these requirements appear in the conversation space with this behavior:

  • Notification is displayed in conversation style
  • Bubble button is offered, if implemented
  • Conversation specific functions are offered inline

If the notification does not meet these requirements, the platform uses fallback options to format the notification. If a notification meets the requirements of either fallback case, the notification is displayed in the conversation space with special formatting. If the notification does not qualify for either fallback option, it is not displayed in the conversation space.

Fallback: If MessagingStyle is used but no shortcut is provided

If the app targets Android 10 or lower and a notification uses MessagingStyle but does not associate the message with a shortcut, the notification is shown in the conversation space with this behavior:

  • Notification is displayed in conversation style
  • No Bubble button is offered
  • No Conversation specific functions are offered inline

Fallback: If MessagingStyle is not used, but the app is a recognized messaging app

If a notification does not use MessagingStyle but the app is recognized by the platform as a messaging app, and the notification's category parameter is set to msg, the notification is shown in the conversation space with this behavior:

  • Notification is displayed in old, pre-Android 11 style
  • No Bubble button is offered
  • No Conversation specific functions are offered inline

Guidance, usage, and testing

This section provides general guidance on how to use and test the conversation features.

When should I use conversations?

Conversation Notifications and related shortcuts are intended to improve the user experience of real-time conversations. For example, SMS, text chats, and phone calls are real-time conversations where users expect to communicate quickly. Users don't have that expectation with emails and activities unrelated to conversations.

We’ve given users the ability to remove a given conversation from the conversation section if they don’t feel it’s in the right space.

Providing great shortcuts

To be featured in the conversation space, you will need to provide shortcuts if your apps targets Android 11. Provide an AdaptiveIconDrawable for the shortcut's icon or your shortcut avatar may be unintentionally clipped, see Providing shortcut imagery for more details.

Your shortcut will be ranked in different system surfaces, including the system sharesheet if it's a sharing shortcut. See Get the best ranking for details on how to ensure the system promotes your shortcut.

Testing Conversation Notifications and shortcuts

Long-pressing on a conversation opens a menu of
  conversation-related actions.
Figure 3: You can verify that a conversation notification is properly configured by long-pressing on it and checking that the conversation menu appears.

If you follow the conversation space guidelines, conversations should automatically appear in the conversation space. A long-press on the notification verifies that the shortcut is properly integrated with the notification. If the integration is done properly, the UI shows conversation-related actions; if the notification is not linked to a shortcut, the UI shows text stating that the app does not support conversation features.

Added shortcuts display on a long-press on the app launcher. Be sure to test that the shortcuts take you to the correct place within your app.

Added sharing shortcuts are shown in the system Sharesheet's direct share row when sharing content your sharing shortcut can receive.