Ассистент делится

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

При появлении соответствующего запроса Ассистент вставит выбранную фотографию в сообщение.
Рисунок 1. Ассистент делится фотографией с контактом.

Часто этого метода обмена бывает достаточно, но пользователи, которые получают контент из вашего приложения, могут не повторно войти в приложение для просмотра контента. Вы можете предоставить Ассистенту структурированную информацию о текущем содержимом переднего плана, реализовав метод 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() см. в руководстве «Оптимизация контекстного контента для помощника» .