функция "Чтение вслух"

Функция Google Ассистента "Чтение вслух", доступная на устройствах Android, позволяет пользователям читать длинный веб-контент, например новостные статьи и записи в блогах. Пользователи могут сказать "Окей, Google, прочитай", чтобы приложение прочитало вслух контент веб-версии, выделяя слова и автоматически прокручивая страницу. Чтобы узнать больше об этой функции, прочитайте запись в блоге.

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

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

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

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

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

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

Если в вашем приложении Android уже есть веб-контент, который открывается в WebView или специальных вкладках Chrome, используйте те же веб-URI для Read It.

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

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

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

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

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

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

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

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