助手分享

Android 手机用户可以使用诸如“嘿 Google,将此发送给 Jane”之类的语音指令,要求 Google 助手与另一位用户分享应用内容。根据第一个用户的系统选项,助手随后可以将屏幕上的文本或设备屏幕截图整合到分享内容中。

The Assistant inserts a selected photo into a message when
            prompted.
图 1. 助手与联系人分享照片。

这种分享方式通常足够,但收到从您的应用分享的内容的用户可能不会重新进入应用来查看内容。您可以通过实现 onProvideAssistContent() 方法,向助手提供关于当前前台内容的结构化信息。

这个过程有助于在数据分享给其他用户时保持数据的结构。接收共享应用内容的用户随后可以通过深层链接打开,或直接接收内容,而不是仅仅接收文本或屏幕截图。

为应用中任何可共享的 entity 实现 onProvideAssistContent()

向助手提供内容

在调用 App Action 后,您只需要在用户任务流程中的最终应用 Activity 中实现 onProvideAssistContent()。例如,在 GET_ITEM_LIST 流程中,请在显示项目列表的最终屏幕中实现此方法;对于任何进行中或预览屏幕,您无需实现它。

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", "ItemList")
            .put("name", "My Work items")
            .put("url", "https://my-notes-and-lists.com/lists/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", "ItemList")
          .put("name", "My Work items")
          .put("url", "https://my-notes-and-lists.com/lists/12345a")
          .toString();
}
      

尽可能多地提供关于每个 entity 的数据。以下字段是必需的

  • @type
  • .name
  • .url(仅当内容可通过 URL 寻址时才需要)

要详细了解如何使用 onProvideAssistContent(),请参阅优化助手上下文内容指南。