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 opciones del sistema del primer 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 tu 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 tener vínculos directos o recibir contenido directamente, en lugar de hacerlo como texto o como captura de pantalla.

Te recomendamos que implementes onProvideAssistContent() para cualquier elemento entity que se pueda compartir en tu app.

Cómo proporcionar 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 un flujo CREATE_MONEY_TRANSFER, debes implementar el método en la pantalla final que muestra el recibo. No necesitas implementarla para ninguna pantalla de progreso ni 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();
}
      

Si bien recomendamos que brindes 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)

Si deseas obtener más información sobre el uso de onProvideAssistContent(), consulta la guía de optimización del contenido contextual de Asistente en la documentación para desarrolladores de Android.