La función de lectura de Asistente de Google que está disponible en dispositivos Android ofrece a los usuarios otra forma de leer contenido web de formato largo, como artículos de noticias y entradas de blog. Por ejemplo, los usuarios pueden decir "Hey Google, leer" para que una app lea contenido basado en la Web en voz alta, destaque las palabras que se están leyendo y se desplace automáticamente por la página. Para obtener más información sobre esta función, también puedes consultar la entrada de actualización del producto de lectura.
Las apps para Android con contenido basado en la Web pueden admitir la función de lectura si proporcionan información al Asistente con el método onProvideAssistContent()
.
Este proceso ayuda a mantener la estructura de los datos, ya que se comparte con Asistente. 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.
Implementa onProvideAssistContent()
para cualquier contenido basado en la Web y cualquier entity
que se pueda compartir en tu app.
Proporciona contenido a Asistente
Para que la función de lectura pueda acceder al contenido, la app debe proporcionar a Asistente información sobre el contenido, como su URI web y algún contexto básico. Asistente puede recuperar tu contenido para que se lea en voz alta al usuario.
En el caso de las apps para Android que ya implementan contenido basado en la Web on WebViews o pestañas personalizadas de Chrome, recomendamos usar los mismos URIs web para la función de lectura como punto de partida.
Cuando combinas la función de lectura con intents integrados, solo debes implementar onProvideAssistContent()
para la actividad final de la app en el flujo de tareas del usuario después de invocar la Acción en la app.
Por ejemplo, si tu app muestra artículos de noticias, implementarás onProvideAssistContent()
en la pantalla final en la que se muestra el artículo. No es necesario que la implementes para pantallas en progreso ni de vista previa.
Brinda un URI web para tu contenido en el campo uri
de AssistContent
.
Proporciona información contextual como un objeto JSON-LD con vocabulario de schema.org en el campo structuredData
.
En el siguiente fragmento de código, se muestra un ejemplo para brindar contenido al Asistente:
Kotlin
override fun onProvideAssistContent(outContent: AssistContent) { super.onProvideAssistContent(outContent) // Set the web URI for content to be read from a // WebView, Chrome Custom Tab, or other source val urlString = url.toString() outContent.setWebUri(Uri.parse(urlString)) // Create JSON-LD object based on schema.org structured data val structuredData = JSONObject() .put("@type", "Article") .put("name", "ExampleName of blog post") .put("url", outContent.getWebUri()) .toString() outContent.setStructuredData(structuredData) }
Java
@Override public void onProvideAssistContent(AssistContent outContent) { // Set the web URI for content to be read from a // WebView, Chrome Custom Tab, or other source String urlString = url.toString(); outContent.setWebUri(Uri.parse(urlString)); try { // Create JSON-LD object based on schema.org structured data String structuredData = new JSONObject() .put("@type", "Article") .put("name", "ExampleName of blog post") .put("url", outContent.getWebUri()) .toString(); outContent.setStructuredData(structuredData); } catch (JSONException ex) { // Handle exception Log.e(TAG, ex.getMessage()); } super.onProvideAssistContent(outContent); }
Cuando implementes onProvideAssistContent()
, 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)
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.