Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

人と会話

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

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

会話スペース


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

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

  • 他とは異なるデザインで、会話を管理するアプリに参加している人を表すアバターが強調されて表示されます。
  • 通知をタップすると、アプリ(前にバブルで表示されていた会話の場合は、バブル)に会話が表示されます。カーソルをタップすると、新着メッセージがシェード内に最大限展開され、オプションがすべて表示されます。
  • 会話固有の操作が提供されます(長押しが必要なものもあります)。
    • この会話を優先としてマークする
    • この会話をバブルにする(アプリがバブルに対応している場合のみ表示される)
    • この会話の通知をミュートする
    • この会話にカスタムの音やバイブレーションを設定する

バブルでの会話

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

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

会話ショートカット

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

API ガイドライン

ここでは、人と会話が表示されるシステム提供スペース向けのサポートをアプリに追加するための API について説明します。

会話へのショートカット

この会話中心の取り組みに参加するには、アプリからシステムに長期のショートカットを提供する必要があります。長期の共有ショートカットを使用することを強くおすすめします。Android 11 では必要に応じて動的ショートカットを使用できますが、今後、このオプションは削除される可能性があります。

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

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

会話の通知

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

  • 通知で MessagingStyle が使用されている。

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

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

LocusId を使用してアプリ内の会話のランク付けをサポートする

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

Android 10 以下をターゲットとするアプリの会話スペースの要件

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

追加されている共有ショートカットは、共有ショートカットが受け取ることができるコンテンツを共有したときに、システム共有シートの直接共有の行に表示されます。