App Actions: начало работы

19 августа 2021

App Actions позволяет Google Assistant получить доступ к вашему приложению и запустить определённые действия в рамках работы приложения. Из данного урока вы узнаете, как реализовать App Actions так, чтобы пользователи смогли взаимодействовать с вашим приложением через Google Assistant.

Версия
Kotlin 1.4, Android 5.0, Android Studio 4.1

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

App Actions позволяет вам использовать специальные функции вашего приложения через Google Assistant. Ближе к концу 2020 года Google представил 30 новых намерений для создания ваших App Actions, в результате чего их общее число превысило 60.

Из данного урока вы узнаете, как добавить App Actions в StockTracker. Данное приложение получает актуальный курс акций из интернета с помощью бесплатного общедоступного API. По ходу урока вы узнаете:

  • Что такое App Actions
  • Как работают App Actions
  • Добавление собственных App Actions
  • Тестирование App Actions
  • Развертывание App Actions.

Заметка

В этом туториале предполагается, что вы знакомы с основами разработки Android на Kotlin. Вы также должны иметь некоторое представление о глубоких ссылках (Deep Links). Вам также понадобится физическое устройство с поддержкой API 21 или выше для тестирования App Actions.

Начинаем работу

Загрузите стартовый проект, нажав кнопку на кнопку Download Materials вверху или внизу этого туториала. Откройте Android Studio и импортируйте стартовый проект.

Уделите минутку на ознакомление с кодом. Вы увидите следующие классы:

  1. MainActivity.kt: главный экран приложения, который позволяет пользователям вводить тикеры избранных акций. Данный класс также обрабатывает глубокие ссылки, запускаемые App Actions.
  2. Stock.kt: файл, содержащий классы данных, используемые для анализа ответа API.
  3. StockApiService.kt: файл, содержащий весь связанный сетевой код, включая конечную точку GET, используемую для получения котировок акций. Он также предоставляет объект модификации, используемый в StockQuoteActivity.kt.
  4. StockQuoteActivity.kt: второй экран приложения, в котором отображается последняя информация о выбранных акциях. В этом классе Корутины (Сопрограммы) асинхронно извлекают данные из сети.

Прежде чем создать и запустить приложение, вам необходимо добавить свой собственный ключ API. Получите ключ API в службе поддержки Alpha Vantage. После чего откройте StockQuoteActivity.kt и вставьте его в пустое поле, чтобы присвоить значение константе API_KEY.

Теперь все готово. Запустив приложение, вы увидите следующее:

Введите тикер вашей любимой акции (например, GOOG) и нажмите GET QUOTE (получить цену). На новом экране отображается последняя котировка выбранной вами акции.

Заметка

Убедитесь, что вы подключены к Интернету, чтобы просмотреть значения котировок акций.

Итак, теперь у вас есть приложение, которое может показывать курс акций, когда вы вводите тикер (короткое биржевое имя), но, согласитесь, было бы круто, если вы могли бы просто спросить его вместо этого? Вот тут-то и пригодятся App Actions! :)

Введение в App Actions

App Actions - это быстрый запуск вашего приложения. Они могут запускать различные функции вашего приложения с помощью Google Assistant. Вы можете создать глубокую ссылку (deep link) на свое приложение с помощью простой голосовой команды, например: «Привет, Google, сообщи мне курс акций GOOGL в Stock Tracker».

App Actions также могут отображать любую информацию из вашего приложения прямо в диалоговом окне беседы Google Assistant. Вам не нужно открывать приложение, вы можете просто попросить Google Assistant открыть его для вас, не переключаясь с текущих дел.

Представление внутренней работы App Actions

App Actions работают с концепцией намерений (intent). Намерения - это объекты, которые могут запрашивать действия от различных компонентов приложения. Для вызова различных App Actions используются два типа намерений:

  • Встроенные намерения (BII): как следует из названия, BII - это набор намерений, предоставляемых Google для поддержки общих функций приложений. Существуют разные категории BII. Некоторые примеры встроенных намерений фактически являются actions.intent.GET_NEWS_ARTICLE, actions.intent.CREATE_CALL и actions.intent.ORDER_MENU_ITEM.

Полный список встроенных намерений доступен в официальном указателе. Вам необходимо указать встроенное намерение, которое вы хотите использовать для своего приложения, в файле actions.xml.

  • Пользовательские намерения: хотя в настоящее время доступно более 60 встроенных намерений, для некоторых возможностей вашего приложения могут потребоваться функции, которые еще не доступны. Чтобы решить данную проблему, вы можете использовать собственные намерения.

Основное различие между встроенным намерением и настраиваемым намерением заключается в том, что для настраиваемого намерения вам необходимо указать дополнительные шаблоны запросов, чтобы включить то, что может сказать пользователь. Вам необходимо указать различные шаблоны запросов внутри массива строк. Для каждого настраиваемого намерения, которое вы реализуете в своем приложении, может быть максимум 100 шаблонов запросов.

Когда вы добавляете намерение для App Action, Google Assistant сопоставляет запрос пользователя с вашим встроенным (или настраиваемым) намерением. Он извлекает параметр намерения, передает его определенному исполнению для этого намерения, а затем связывает пользователя с приложением при помощи глубоких ссылок.

Заметка

Приложение уже должно обрабатывать глубокие ссылки, которые будет вызывать Google Assistant.

Теперь, когда вы знаете, как работают App Actions, пришло время загрузить приложение.

Загрузка черновика приложения в Play Console

Прежде чем вы начнете добавлять App Actions, вам необходимо загрузить черновую версию своего приложения в Play Console. Это позволяет использовать инструмент тестирования App Actions, описанный далее в этом уроке.

Заметка

В этом туториале предполагается, что у вас уже есть учетная запись Google с доступом к Play Console.

Сначала откройте app/build.gradle и измените applicationId на что-нибудь уникальное. Например, вы можете установить applicationId как com.youruniquename.android.stocktracker. Это предотвратит проблемы при загрузке вашего приложения.

Затем создайте подписанное приложение в Android Studio и загрузите его в Play Console в качестве внутреннего релиза.

Добавление вашего первого App Action

Чтобы начать добавлять App Actions, вам нужно сделать три вещи:

  1. Определить правильное встроенное намерение для использования.
  2. Создать файл actions.xml.
  3. Сделать App Actions видимыми для самого приложения.

Определение правильного BII

Определите основные функции вашего приложения, для которых вы хотите настроить App Actions. Например, если это приложение для доставки еды, то основным функционалом будет заказ еды (неудивительно!). Затем перейдите к списку встроенных намерений и определите нужное намерение для вашего случая.

В качестве примера, как мы уже говорили, используем StockTracker, который извлекает последние котировки акций из Интернета. Правильный BII для нашего случая - actions.intent.GET_STOCK_QUOTE. У него есть один параметр намерения tickerSymbol, который однозначно идентифицирует каждую акцию.

Создание файла actions.xml

Создайте новый файл actions.xml в app/src/main/res/xml.

Заметка

Если у вас еще нет папки xml, создайте ее, щелкнув правой кнопкой мыши на каталог res и выберите New ▸ Android Resource Directory. Задайте имя директории как xml и выберите xml в качестве типа ресурса. Затем нажмите ОК.

Добавьте следующий код во вновь созданный файл actions.xml под тегом xml:


// 1:
  
// 2:
    
// 3:
      
    
// 4:
    
    
  

В приведенном выше xml-коде вы:

  1. Создаете новое действие с actions.intent.GET_STOCK_QUOTE: action, оно является обязательным тегом для указания App Action, которое вы хотите реализовать. Каждое App Action будет иметь уникальный тег action. intentName принимает встроенное намерение для этого действия.
  2. Определяете новое выполнения для соответствующего действия: fulfillment, которое предоставляет информацию о том, как данное намерение удовлетворяет запрос. urlTemplate создает создает глубокие ссылки, как определено в AndroidManifest.xml. Для того, чтобы произвести добавления, обозначим, что app://stocktracker - это базовая глубокая ссылка, а /query{?symbol} - путь, который принимает параметр запроса symbol.
  3. Создаете новое сопоставление параметров для указанного выше параметра запроса: parameter-mapping, который сопоставляет параметры запроса в шаблоне URL с параметрами намерения. Данное сопоставление связано с тем, что параметр намерения actions.intent.GET_STOCK_QUOTE имеет значение tickerSymbol, а имя параметра запроса - symbol. required задает значение символа как обязательное для того, чтобы URL был допустимым.
  4. Добавляете новое резервное выполнение: в данном выполнении urlTemplate создает новую глубокую ссылку app://stocktracker/home, где /home - это путь. Выполнение запускается, когда пользователь вызывает намерение без указания какого-либо символа в параметре запроса.

Заметка

Рекомендуется всегда определять резервное выполнение для обработки различных крайних случаев. Вы же не хотите, чтобы у пользователя был плохой опыт, когда он не предоставляет правильные данные.

Если ли вы откроете MainActivity.kt, то увидите, что приложение уже обрабатывает пути глубоких ссылок, определенные выше в handleDeepLink().

Ссылаемся на App Action в Manifest File

Откройте AndroidManifest.xml и добавьте следующий код непосредственно перед закрывающим application тегом:

Приведенный выше фрагмент кода гарантирует, что ваш файл actions.xml будет виден приложению. Если вы использовали другое имя для своего action - файла, вам следует изменить свой android:resource атрибут.

Вы проделали хорошую работу по успешному добавлению вашего App Action в приложение! Пришло время протестировать App Action.

Тестирование App Actions

Для тестирования App Actions требуется физическое устройство с API 21 или выше. Если вы попробуете его на виртуальном эмуляторе, то это может привести к непредсказуемым результатам. Подключите свое физическое устройство к локальной машине разработки.

Подготовка к тестированию

Убедитесь, что ваше устройство подключено к Интернету и что Google Assistant уже настроен и работает. Нажмите и удерживайте кнопку домой. Если экран вашего устройства совпадает с примером ниже, значит, вы на правильном пути.

Войдите в Android Studio с той же учетной записью Google, которая подключена к вашему физическому устройству. Это также должна быть та же учетная запись, которую вы использовали для загрузки черновика приложения.

Щелкните на белый значок пользователя в правом верхнем углу Android Studio 4.0.0 или более поздней версии. Следуйте инструкциям по мере их появления. После входа в систему вы можете проверить правильность своего адреса электронной почты, щелкнув на значок пользователя.

Затем установите плагин App Actions Test Tool, перейдя в File ▸ Settings (Android Studio ▸ Preferences on MacOS). Выберите раздел Plugins слева и найдите инструмент тестирования действий приложения (App Actions Test Tool) на marketplace.

Наконец, пришло время опробовать ваш новый плагин.

Использование инструмента тестирования App Actions

App Actions Test Tool - это плагин, используемый для тестирования App Actions, созданных в Android Studio. Это очень полезный инструмент на этапе разработки. Он позволяет предварительно просматривать App Action, анализируя действия из файла actions.xml, который вы создали выше.

Откройте App Action Test Tool, выбрав Tools ▸ App Actions ▸ App Actions Test Tool. Вы увидите экран, который выглядит так:

В поле Invocation name введите Stock Tracker. Invocation name запускает App Action. Для параметра Locale оставьте значение по умолчанию. Нажмите на Create Preview. После успешного создания предварительного просмотра вы увидите экран ниже:

Обратите внимание, что он распознает встроенное намерение, которое вы добавили в actions.xml. В нем также есть поле tickerSymbol для внесения изменений. Убедитесь, что ваше целевое устройство правильно отображается в этом окне.

Щелкните Run, чтобы протестировать действие приложения. Он запускает сначала Google Assistant на вашем устройстве, а затем – глубокие ссылки на приложение для отображения корректных котировок акций, соответствующие переданному значению tickerSymbol.

Попробуйте вызвать Google Assistant, сказав команду: «Привет, Google, скажи мне цену акций Tesla в Stock Tracker». На несколько секунд вы увидите приведенный ниже скрин, а затем откроется StockTracker с актуальным курсом акции.

Поиграйтесь с App Actions, протестировав Google Assistant с разными акциями. Чтобы проверить резервное выполнение, скажите: «Привет, Google, скажи мне текущую цену акций в Stock Tracker». Поскольку на этот раз вы не указали конкретные акции, он использует резервное выполнение и открывает главный экран приложения с приветственным сообщением.

Теперь когда вы создали и протестировали App Action, вы можете опубликовать его для всего мира!

Развертывание App Actions

Заметка

Эта часть урока не является обязательной. Ознакомьтесь с ней, если хотите узнать больше о процессе развертывания.

Перед развертыванием App Action вам необходимо выполнить несколько требований:

  • Если в вашем приложении есть функция поиска, вам следует реализовать встроенное намерение GET_THING. Это позволяет пользователям запускать поисковые запросы из Google Assistant.
  • Google также рекомендует использовать Firebase App Indexing API для улучшения результатов поиска и предложений Assistant.

После того, как вы выполнили указанные выше требования, пора запустить App Actions review process. Откройте Google Play Console.

После выбора приложения перейдите в раздел Advanced Settings и щелкните вкладку Actions on Google.

Установите флажок, чтобы открыть Actions on Google Terms of Service.

Внимательно прочтите условия использования, после чего нажмите Accept.

Затем загрузите приложение, содержащее actions.xml, в Play Console. После этого шага Google отправит вам электронное письмо, чтобы сообщить, принимают или отклоняют ваши App Actions.

Наконец-то готово! Поздравляем с завершением этого урока. Теперь у вас есть еще одна причина полюбить Google Assistant. :)

Ссылка на материалы

Оригинал статьи

Содержание