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

多くの場合、この共有方法で十分ですが、アプリから共有されたコンテンツを受け取ったユーザーが、アプリに戻ってコンテンツを確認できないことがあります。現在のフォアグラウンド コンテンツに関する構造化情報をアシスタントに提供するには、onProvideAssistContent()
メソッドを実装します。
この手順は、別のユーザーと共有されるデータの構造を維持するために役立ちます。共有されたアプリのコンテンツを受け取ったユーザーは、テキストやスクリーンショットではなく、ディープリンクを受け取ったり、コンテンツを直接受信したりできます。
アプリ内の共有可能な entity
に onProvideAssistContent()
を実装してください。
アシスタントにコンテンツを提供する
行う必要がある作業は、App Action の呼び出し後に、ユーザーのタスクフローで最終的なアプリ アクティビティに onProvideAssistContent()
を実装することだけです。たとえば、
GET_ITEM_LIST
フロー、最終画面にメソッドを実装
アイテムリストの表示進行中のイベントや
プレビュー画面があります
AssistContent
の structuredData
フィールドに schema.org ボキャブラリを使用する JSON-LD オブジェクトとしてコンテキスト情報を指定します。次のコード スニペットは、コンテキスト コンテンツのロギングの例を示しています。
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()
}
@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()
の使用方法について詳しくは、アシスタント用にコンテキスト コンテンツを最適化するガイドをご覧ください。