Пользователи телефонов Android могут попросить Google Assistant поделиться содержимым приложения с другим пользователем, используя голосовую команду, например «Эй, Google, отправь это Джейн». В зависимости от системных параметров первого пользователя Ассистент может затем включить текст с экрана или снимок экрана устройства в общий контент.
![При появлении соответствующего запроса Ассистент вставит выбранную фотографию в сообщение.](https://developer.android.com/static/guide/app-actions/images/app-actions-assistant-sharing.gif?hl=ru)
Часто этого метода обмена бывает достаточно, но пользователи, которые получают контент из вашего приложения, могут не повторно войти в приложение для просмотра контента. Вы можете предоставить Ассистенту структурированную информацию о текущем содержимом переднего плана, реализовав метод onProvideAssistContent()
.
Этот процесс помогает поддерживать структуру данных при их передаче другому пользователю. Пользователи, которые получают общий контент приложения, затем могут быть связаны глубокими ссылками или получать контент напрямую, а не в виде текста или снимка экрана.
Реализуйте onProvideAssistContent()
для любого совместно используемого entity
в вашем приложении.
Предоставьте контент Ассистенту
Вам нужно реализовать onProvideAssistContent()
только для конечного действия приложения в потоке задач пользователя после вызова действия приложения. Например, в потоке CREATE_MONEY_TRANSFER
реализуйте метод на последнем экране, показывающем квитанцию; вам не нужно реализовывать его для экранов текущего процесса или предварительного просмотра.
Предоставьте контекстную информацию в виде объекта 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", "MenuItem") .put("name", "Blueberry Crisp Iced Signature Latte") .put("url", "https://mysite.com/menuitems/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", "MenuItem") .put("name", "Blueberry Crisp Iced Signature Latte") .put("url", "https://mysite.com/menuitems/12345a") .toString(); }
Предоставьте как можно больше данных о каждом entity
. Следующие поля обязательны:
-
@type
-
.name
-
.url
(требуется только в том случае, если контент доступен по URL-адресу)
Дополнительные сведения об использовании onProvideAssistContent()
см. в руководстве «Оптимизация контекстного контента для помощника» .