Пользователи телефонов Android могут попросить Google Assistant поделиться содержимым приложения с другим пользователем, используя голосовую команду, например «Эй, Google, отправь это Джейн». В зависимости от системных параметров первого пользователя Ассистент может затем включить текст с экрана или снимок экрана устройства в общий контент.
Часто этого метода обмена бывает достаточно, но пользователи, которые получают контент из вашего приложения, могут не повторно войти в приложение для просмотра контента. Вы можете предоставить Ассистенту структурированную информацию о текущем содержимом переднего плана, реализовав метод onProvideAssistContent()
.
Этот процесс помогает поддерживать структуру данных при их передаче другому пользователю. Пользователи, которые получают общий контент приложения, затем могут быть связаны глубокими ссылками или получать контент напрямую, а не в виде текста или снимка экрана.
Реализуйте onProvideAssistContent()
для любого общего entity
в вашем приложении.
Предоставьте контент Ассистенту
Вам нужно реализовать onProvideAssistContent()
только для конечного действия приложения в потоке задач пользователя после вызова действия приложения. Например, в потоке GET_ITEM_LIST
реализуйте метод на последнем экране, показывающем список элементов; вам не нужно реализовывать его для экранов текущего процесса или предварительного просмотра.
Предоставьте контекстную информацию в виде объекта JSON-LD, используя словарь Schema.org в поле structuredData
AssistContent
. В следующем фрагменте кода показан пример регистрации контекстного содержимого:
override fun onProvideAssistContent(outContent: AssistContent) { super.onProvideAssistContent(outContent) // JSON-LD object based on Schema.org structured data outContent.structuredData = JSONObject() .put("@type", "ItemList") .put("name", "My Work items") .put("url", "https://my-notes-and-lists.com/lists/12345a") .toString() }
@Override public void onProvideAssistContent(AssistContent outContent) { super.onProvideAssistContent(outContent); // JSON-LD object based on Schema.org structured data outContent.structuredData = new JSONObject() .put("@type", "ItemList") .put("name", "My Work items") .put("url", "https://my-notes-and-lists.com/lists/12345a") .toString(); }
Предоставьте как можно больше данных о каждом entity
. Следующие поля обязательны:
-
@type
-
.name
-
.url
(требуется только в том случае, если контент доступен по URL-адресу)
Дополнительные сведения об использовании onProvideAssistContent()
см. в руководстве «Оптимизация контекстного контента для помощника» .