助理分享

使用 Android 手机的用户可以通过语音命令(例如“嘿 Google,发送给 Jane”)要求 Google 助理与其他用户共享应用内容。根据第一个用户的系统选项,助理随后可以在共享内容中包含屏幕上的文本或设备屏幕截图。

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

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

此过程有助于在共享到其他用户时维护数据的结构。接收共享应用内容的用户随后可以进行深度链接或直接接收内容,而不是作为文本或屏幕截图。

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

向助理提供内容

您只需要在用户在调用应用操作后任务流中的最终应用活动中实现 onProvideAssistContent()。例如,在 GET_ITEM_LIST 流中,在显示项目列表的最终屏幕中实现该方法;您无需为任何正在进行的或预览屏幕实现它。

JSON-LD 对象的形式提供上下文信息 使用 schema.org 词汇AssistContentstructuredData 字段中。以下代码片段显示了记录上下文内容的示例

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();
}
      

为每个 实体 提供尽可能多的数据。以下字段是必需的

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

要了解有关使用 onProvideAssistContent() 的更多信息,请参阅 优化助理的上下文内容 指南。