人と会話

「人」と「会話」の取り組みは、スマートフォンのシステム上で人と会話を強調することを目的とした Android の複数年にわたる取り組みです。人と会話を優先する理由は、他のユーザーとのコミュニケーションや対話が、あらゆるユーザー層にわたる大多数のユーザーにとって、依然として最も価値のある重要な機能分野であるからです。

Android 11 には、人と会話の取り組みをサポートするさまざまな新機能が導入されています。

会話スペース


会話スペースは、人間同士がリアルタイムに行う会話専用の通知領域です。
図 1: 会話スペース

多くのスマートフォンで、通知シェードの一番上に別個のセクションが設けられ、人とのリアルタイムの会話だけが表示されます(チャット メッセージなど、グループ会話やグループ通話を含む)。多くのスマートフォンでは、このスペースの通知は、通常の通知とは表示や動作が異なります。

  • デザインが他とは異なり、相手を表すアバターと、会話が行われているアプリがはっきり強調されます。
  • Android 10 での場合と同様に、この通知をタップすると、アプリ(以前にバブルだった会話はバブル)が開いて会話が表示されます。キャレットをタップすると、新着メッセージがシェード内に最大限展開され、以前と同じオプションが表示されます。
  • 会話固有の操作が提供されます(一部は長押しが必要)。
    • この会話を優先としてマークする
    • この会話をバブルにする(アプリがバブルに対応している場合のみ表示される)
    • この会話の通知をミュートする
    • この会話にカスタムの音やバイブレーションを設定する

バブルでの会話

会話の要件を満たしている通知は、プラットフォームで通知ドロワーからバブルとして起動されます。
図 2: 通知ドロワーからバブルとして起動される通知

Android 11 では、会話セクションの通知からバブルを開始できます。ショートカットに関連付けられている通知のみバブルにすることができます。重要としてマークされた会話、または通知シェード内でバブルとしてトリガーされた会話は自動的にバブルになります。

会話ショートカット

会話へのショートカットがランチャーに表示され、システム共有シートの長期の共有ショートカットもともに表示されます。

API ガイドライン

このセクションでは、アプリ内で人と会話のスペースを活用するための API について説明します。

会話へのショートカット

この新しい会話中心の取り組みに参加するには、アプリからシステムに長期のショートカットを提供する必要があります。現時点では、長期の動的ショートカットを使用して、会話スペースに通知を表示できますが、長期の共有ショートカットを使用することを強くおすすめします。将来的には、共有ショートカットの使用が必須になります。

会話へのショートカットを公開するには、ShortcutManager の既存のメソッドのうち、setDynamicShortcuts()addDynamicShortcuts()pushDynamicShortcut() のいずれかを呼び出します(デベロッパーのためにショートカットの制限を自動的に管理します)。このショートカットは長期間保持され、会話の相手を識別する 1 人以上の人の Person データがアタッチされている必要があります。また、ショートカットに LocusId を設定し、アプリ内のアクティビティとフラグメントにその LocusId のアノテーションを付けることをおすすめします。これにより、アプリの使用方法に応じて、システムが会話を正確にランク付けできます。

会話が終わったら、アプリは removeLongLivedShortcuts() を使ってショートカットを削除できます。これにより、その会話に関連付けられたすべてのデータが削除されます。ショートカットは削除できますが、どうしても必要な場合を除き、キャッシュに保存されたショートカットは削除しないでください。ショートカットがキャッシュに保存されるのは、おそらくユーザーが設定を変更する操作を行ったためであり、ショートカットを削除するとその変更が元に戻るので、ユーザーの不満を招きます。

会話の通知

次の条件に該当する場合、通知が会話の通知と見なされます。

  • 通知で MessagingStyle を使用する

  • (アプリが Android 11 をターゲットとする場合のみ)通知が有効な長期の動的ショートカットまたはキャッシュに保存された共有ショートカットに関連付けられている。通知でこの関連付けを設定するには、setShortcutId() または setShortcutInfo() を呼び出します。アプリが Android 10 以下をターゲットとする場合、フォールバック オプションのセクションで説明するように、通知をショートカットに関連付ける必要はありません。

  • ユーザーが投稿時に、通知チャンネルの設定で会話セクションから会話の順位を下げていない。

アプリ内の会話と LocusId

デバイス上の高度な機能によって、ユーザーが関心を持っている可能性の高い会話が判断されます。最も重要なシグナルには、各会話におけるセッションの「新しさ」と「頻度」があります。適切にタグ付けされていれば、ランチャーのショートカットからの会話や通知内での会話に対する操作を、システムが認識できます。ただし、完全にアプリ内で発生した会話の場合、それに対する操作についてもタグ付けされていない限り、システムは認識できません。そのため、LocusId をショートカットにアタッチし、アプリ内アクティビティまたはフラグメントに、関連する LocusId のアノテーションを付けることを強くおすすめします。LocusId を使用すると、候補を提示するシステムが会話を適切にランク付けできます。setShortcutInfo() を使用して会話にショートカットを関連付けると、会話システムが自動的に適切な LocusId をアタッチします。

Android 11 をターゲットとしないアプリの会話スペースの要件

Android 11 をターゲットとしないアプリの場合でも、アプリのメッセージは会話スペースに表示されることがあります。ただし、アプリは特定の要件を満たす必要があります。このセクションでは、こうしたアプリの要件と、アプリが要件を満たしていない場合のフォールバック動作について説明します。

メッセージ スペースに参加するための主要な要件は、アプリが MessagingStyle 通知を実装することと、通知が掲載される時点で公開された通知からの長期のショートカットをその通知が参照していることです。これらの要件を満たす会話は、以下のように会話スペースに表示されます。

  • 通知は会話スタイルで表示されます
  • 実装されている場合はバブルボタンが提供されます
  • 会話固有の機能がインラインで提供されます

通知が上記の要件を満たしていない場合、プラットフォームはフォールバック オプションを使用して通知をフォーマットします。フォールバックのどちらかの要件を満たす通知は、会話スペースに特別なフォーマットで表示されます。フォールバック オプションのどちらにも適合しない通知は、会話スペースに表示されません。

フォールバック: MessagingStyle が使用されているが、ショートカットが提供されていない場合

Android 10 以下をターゲットとしているアプリで、通知が MessagingStyle を使用していても、メッセージがショートカットに関連付けられていない場合、通知は会話スペースに以下のように表示されます。

  • 通知は会話スタイルで表示されます
  • 提供されるバブルボタンはありません
  • インラインで提供される会話固有の機能はありません

フォールバック: MessagingStyle が使用されていないが、アプリがメッセージ アプリと認識されている場合

通知が MessagingStyle を使用していなくても、アプリがメッセージ アプリとしてプラットフォームに認識されており、通知の category パラメータが msg に設定されている場合、通知は以下のように会話スペースに表示されます。

  • 通知は Android 11 より前の古いスタイルで表示されます
  • 提供されるバブルボタンはありません
  • インラインで提供される会話固有の機能はありません

ガイダンス、使用方法、テスト

このセクションでは、会話機能の使用方法とテスト方法に関する一般的なガイダンスを示します。

会話を使用するタイミング

会話の通知と関連ショートカットの目的は、リアルタイムの会話のユーザー エクスペリエンスを向上させることです。たとえば、SMS、テキスト チャット、通話は、ユーザーがすぐにコミュニケーションをとることができるリアルタイムの会話です。ユーザーは、会話に関係のないメールやアクティビティは期待していません。

ユーザーが適切な場所にないと感じた会話を、会話セクションから削除する機能を Google は提供しています。

優れたショートカットの提供

Android 11 をターゲットとするアプリを、会話スペースに表示されるようにするには、ショートカットを提供する必要があります。ショートカットのアイコンに AdaptiveIconDrawable を指定してください。指定しない場合、ショートカットのアバターが意図に反してクリップされることがあります。詳しくは、ショートカット画像を提供するをご覧ください。

共有ショートカットの場合は、システム共有シートなど、さまざまなシステム サーフェスでランク付けされます。ショートカットがシステムで推奨されるようにする方法について詳しくは、最高のランキングを取得するをご覧ください。

会話の通知とショートカットのテスト

会話を長押しすると、会話に関する操作のメニューが開きます。
図 3: 会話の通知が適切に設定されているかどうかを確認するには、長押しして表示される会話のメニューを確認する

会話スペースのガイドラインを遵守していれば、会話は自動的に会話スペースに表示されます。通知を長押しすると、ショートカットが通知と適切に統合されているかどうかを確認できます。適切に統合されていると、UI に会話に関連する操作が表示されます。通知がショートカットにリンクされていない場合、アプリが会話機能をサポートしていないというメッセージが UI に表示されます。

追加されているショートカットは、アプリ ランチャーで長押しすると表示されます。ショートカットからアプリ内の正しい場所に移動できるかどうか確認してください。

追加されている共有ショートカットは、共有ショートカットが共有できるコンテンツを受け取ったときに、システム共有シートのダイレクト シェア行に表示されます。