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

Приложения 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.