助理共享

Android 手机上的用户可以请求 Google 助理使用语音命令(例如“嘿 Google,将此发送给 Jane”)与另一个用户共享应用程序内容。根据第一个用户的系统选项,助理可以随后在共享内容中合并来自屏幕的文本或设备屏幕截图。

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

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

此过程有助于在数据共享到另一个用户时保持数据结构。接收共享应用程序内容的用户可以随后被深度链接或直接接收内容,而不是作为文本或屏幕截图。

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

向助理提供内容

您只需要在用户在调用应用程序操作后任务流中的最终应用程序活动中实现 onProvideAssistContent()。例如,在 CREATE_MONEY_TRANSFER 流中,在显示收据的最终屏幕中实现该方法;您无需为任何进行中的或预览屏幕实现该方法。

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

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

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

  • @type
  • .name
  • .url(仅在内容是 URL 可寻址时才需要)

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