アシスタントの共有

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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

プロンプトが表示されたら、アシスタントは選択した写真をメッセージに挿入します。
図 1. アシスタントが知人と写真を共有する

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

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

アプリの共有可能な entity には onProvideAssistContent() を実装することをおすすめします。

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

行う必要がある作業は、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() の使用方法について詳しくは、Android デベロッパー向けドキュメントのアシスタント用にコンテキスト コンテンツを最適化するガイドをご覧ください。