Читать

Чтение — это функция Google Assistant, доступная на устройствах Android, которая предлагает пользователям еще один способ читать подробный веб-контент, например новостные статьи и сообщения в блогах. Пользователи могут сказать что-то вроде «Эй, Google, прочитай», чтобы приложение прочитало веб-контент вслух, выделило читаемые слова и автоматически прокрутило страницу. Чтобы узнать больше об этой функции, вы также можете прочитать сообщение об обновлении продукта «Прочитать» .

При появлении запроса приложение читает веб-контент на экране вслух с помощью Google Assistant.
Рисунок 1. Прослушивание приложения, читающего веб-контент вслух.

Приложения Android с веб-контентом могут поддерживать функцию Read It, предоставляя информацию Ассистенту с помощью метода onProvideAssistContent() .

Этот процесс помогает поддерживать структуру данных, которыми они делятся с Ассистентом. Пользователи, которые получают общий контент приложения, затем могут быть связаны глубокими ссылками или получать контент напрямую, а не в виде текста или снимка экрана.

Реализуйте onProvideAssistContent() для любого веб-контента и любого совместно используемого entity в вашем приложении.

Предоставьте контент Ассистенту

Чтобы Read It мог получить доступ к вашему контенту, ваше приложение должно предоставить Ассистенту информацию о контенте, например его веб-URI и некоторый базовый контекст. Затем Ассистент может получить ваш контент и прочитать его вслух пользователю.

Для приложений Android, которые уже реализуют веб-контент с помощью WebViews или пользовательских вкладок Chrome, используйте те же веб-URI для чтения в качестве отправной точки.

При объединении функции Read It со встроенными намерениями вам нужно реализовать onProvideAssistContent() только для конечного действия приложения в потоке задач пользователя после вызова действия приложения.

Например, если ваше приложение отображает новостные статьи, реализуйте onProvideAssistContent() на последнем экране, показывающем статью; вам не нужно реализовывать его для экранов текущего процесса или предварительного просмотра.

Укажите веб-URI для вашего контента в поле uri AssistContent . Предоставьте контекстную информацию в виде объекта JSON-LD, используя словарь Schema.org в поле structuredData .

В следующем фрагменте кода показан пример предоставления контента Ассистенту:

Котлин

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

Ява

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

При реализации onProvideAssistContent() предоставьте как можно больше данных о каждой entity . Следующие поля обязательны:

  • @type
  • .name
  • .url (требуется только в том случае, если контент доступен по URL-адресу)

Дополнительные сведения об использовании onProvideAssistContent() см. в руководстве «Оптимизация контекстного контента для помощника» в документации для разработчиков Android.