Uso compartido de Asistente

Los usuarios de teléfonos Android pueden pedirle al Asistente de Google que comparta contenido de la app con otro usuario a través de un comando por voz, como "Hey Google, envíale esto a Jane". Según las primeras opciones del sistema del usuario, Asistente puede incorporar texto de la pantalla o una captura de pantalla del dispositivo en el contenido compartido.

Asistente inserta una foto seleccionada en un mensaje cuando se le solicita.
Figura 1: Asistente comparte una foto con un contacto.

Este método de uso compartido suele ser suficiente, pero es posible que los usuarios que reciben contenido compartido de la app no vuelvan a ingresar a ella para ver el contenido. Puedes brindarle al Asistente información estructurada sobre el contenido actual en primer plano si implementas el método onProvideAssistContent().

Este proceso ayuda a mantener la estructura de datos a la vez que se comparte con otro usuario. Los usuarios que reciben contenido compartido de la app pueden recibir vínculos directos o el contenido directamente, en lugar de hacerlo como texto o como captura de pantalla.

Implementa onProvideAssistContent() para cualquier entity que se pueda compartir en la app.

Proporciona contenido al Asistente

Solo debes implementar onProvideAssistContent() para la actividad final en la app en el flujo de tareas del usuario después de invocar la Acción en la app. Por ejemplo, en una GET_ITEM_LIST, implementa el método en la pantalla final mostrar la lista de elementos; no necesitas implementarlo para ninguna tarea en curso pantallas de vista previa.

Proporciona información contextual como un objeto JSON-LD con vocabulario de schema.org en el campo structuredData de AssistContent. En el siguiente fragmento de código, se muestra un ejemplo de registro de contenido contextual:

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

Proporciona la mayor cantidad de datos posible sobre cada entity. Los siguientes campos son obligatorios:

  • @type
  • .name
  • .url (es obligatorio solo si el contenido es direccionable a una URL)

Para obtener más información sobre el uso de onProvideAssistContent(), consulta la guía Cómo optimizar el contenido contextual de Asistente.