アシスタントの共有

Android スマートフォンのユーザーは、「OK Google, これをマリに送信して」といった音声コマンドを使用して、アプリのコンテンツを別のユーザーと共有することを Google アシスタントに指示できます。アシスタントは、最初のユーザーのシステム オプションに基づいて、画面のテキストやデバイスのスクリーンショットを共有コンテンツに組み込むことができます。

プロンプトが表示されると、選択された写真をアシスタントがメッセージに挿入します。
図 1. アシスタントが連絡先の相手と写真を共有する

多くの場合、この共有方法で十分ですが、アプリから共有されたコンテンツを受け取ったユーザーが、アプリに戻ってコンテンツを確認できないことがあります。現在のフォアグラウンド コンテンツに関する構造化情報をアシスタントに提供するには、onProvideAssistContent() メソッドを実装します。

この手順は、別のユーザーと共有されるデータの構造を維持するために役立ちます。共有されたアプリのコンテンツを受け取ったユーザーは、テキストやスクリーンショットではなく、ディープリンクを受け取ったり、コンテンツを直接受信したりできます。

アプリ内の共有可能な entityonProvideAssistContent() を実装してください。

アシスタントにコンテンツを提供する

行う必要がある作業は、App Action の呼び出し後に、ユーザーのタスクフローで最終的なアプリ アクティビティに onProvideAssistContent() を実装することだけです。たとえば CREATE_MONEY_TRANSFER フローでは、レシートを表示する最後の画面にこのメソッドを実装します。進行中の画面やプレビュー画面にこのメソッドを実装する必要はありません。

AssistContentstructuredData フィールドに schema.org ボキャブラリを使用する JSON-LD オブジェクトとしてコンテキスト情報を指定します。次のコード スニペットは、コンテキスト コンテンツのロギングの例を示しています。

Kotlin
override fun onProvideAssistContent(outContent: AssistContent) {
    super.onProvideAssistContent(outContent)

    // JSON-LD object based on Schema.org structured data
    outContent.structuredData = JSONObject()
            .put("@type", "MenuItem")
            .put("name", "Blueberry Crisp Iced Signature Latte")
            .put("url", "https://mysite.com/menuitems/12345a")
            .toString()
}
      
Java
@Override
public void onProvideAssistContent(AssistContent outContent) {
  super.onProvideAssistContent(outContent);

  // JSON-LD object based on Schema.org structured data
  outContent.structuredData = new JSONObject()
          .put("@type", "MenuItem")
          .put("name", "Blueberry Crisp Iced Signature Latte")
          .put("url", "https://mysite.com/menuitems/12345a")
          .toString();
}
      

entity について、できるだけ多くのデータを提供してください。以下のフィールドは必須です。

  • @type
  • .name
  • .url(コンテンツが URL アドレス指定可能な場合のみ必須)

onProvideAssistContent() の使用方法について詳しくは、アシスタント用にコンテキスト コンテンツを最適化するガイドをご覧ください。