Голосовые помощники Watch позволяют быстро и эффективно работать в дороге. Голосовое взаимодействие на носимых устройствах является динамическим, что означает, что пользователь может говорить со своим запястьем, не обязательно глядя на устройство в ожидании ответа.
С помощью Assistant App Actions разработчики Android могут расширить приложения Wear OS до Google Assistant, быстро перенаправляя пользователей в свои приложения с помощью голосовых команд, таких как «Эй, Google, начни пробежку в exampleApp».
Ограничения
Assistant on Wear поддерживает взаимодействие с мультимедиа и отслеживанием тренировок. Инструкции по интеграции мультимедийных приложений с Ассистентом см. в разделе Google Assistant и мультимедийные приложения . Следующие BII для здоровья и фитнеса поддерживаются для приложений Wear OS:
Как это работает
Действия приложения расширяют функциональность приложения для Ассистента, позволяя пользователям быстро получать доступ к функциям приложения с помощью голоса. Когда пользователь указывает Ассистенту, что он хочет использовать ваше приложение, Ассистент ищет действия приложения, зарегистрированные в вашем приложении, в ресурсе shortcuts.xml
приложения.
Действия приложения описаны в shortcuts.xml
с элементами возможностей Android. Элементы возможностей объединяют встроенные намерения (BII), которые представляют собой семантические описания возможностей приложения, с инструкциями по выполнению, такими как шаблон глубокой ссылки. Когда вы загружаете свое приложение с помощью консоли Google Play, Google регистрирует возможности, объявленные в shortcuts.xml
, делая их доступными для запуска пользователями из Ассистента.
На предыдущей диаграмме показано, как пользователь приостанавливает тренировку в автономном приложении. Происходят следующие шаги:
- Пользователь отправляет голосовой запрос Ассистенту для конкретного носимого приложения.
- Ассистент сопоставляет запрос с предварительно обученной моделью (BII) и извлекает все найденные в запросе параметры, которые поддерживаются BII.
- В этом примере Ассистент сопоставляет запрос с BII
PAUSE_EXERCISE
и извлекает параметр имени упражнения «поход». - Приложение запускается через определение выполнения возможностей
shortcuts.xml
для этого BII. - Приложение обрабатывает выполнение, приостанавливая упражнение.
Возможности подключения
Разработка App Actions зависит от функциональности вашего приложения в экосистеме устройств Android.
Привязанное : когда полная функциональность носимого приложения зависит от мобильного приложения, пользовательские запросы, сделанные Ассистенту через часы, выполняются на мобильном устройстве. Чтобы этот сценарий работал правильно, логика выполнения действий приложения должна быть встроена в мобильное приложение.
Без привязки : когда носимое приложение по функциональности не зависит от мобильного приложения, Ассистент выполняет запросы пользователя локально на часах. Возможности действий приложения должны быть встроены в носимое приложение, чтобы эти запросы выполнялись должным образом.
Добавьте голосовые возможности в Wear
Интегрируйте действия приложения с приложением Wear OS, выполнив следующие действия:
- Сопоставьте функциональность приложения, которую вы хотите включить с помощью голоса, с соответствующим BII .
Объявите поддержку ярлыков Android в ресурсе
AndroidManifest.xml
основного действия.<!-- AndroidManifest.xml --> <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
Добавьте элемент
<intent-filter>
в AndroidManifest.xml. Это позволяет Ассистенту использовать глубокие ссылки для подключения к содержимому вашего приложения.Создайте файл Shorts.xml , чтобы предоставить подробную информацию о выполнении ваших BII. Вы используете элементы ярлыка
capability
, чтобы объявить Ассистенту BII, которые поддерживает ваше приложение. Дополнительные сведения см. в разделе Добавление возможностей .В
shortcuts.xml
реализуйте возможность для выбранного вами BII. Следующий пример демонстрирует возможностиSTART_EXERCISE
BII:<?xml version="1.0" encoding="utf-8"?> <!-- This is a sample shortcuts.xml --> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <capability android:name="actions.intent.START_EXERCISE"> <intent android:action="android.intent.action.VIEW" android:targetPackage="YOUR_UNIQUE_APPLICATION_ID" android:targetClass="YOUR_TARGET_CLASS"> <!-- Eg. name = "Running" --> <parameter android:name="exercise.name" android:key="name"/> <!-- Eg. duration = "PT1H" --> <parameter android:name="exercise.duration" android:key="duration"/> </intent> </capability> </shortcuts>
Если применимо, расширьте поддержку вариантов речи пользователей, используя встроенный инвентарь , который представляет функции и контент вашего приложения.
<capability android:name="actions.intent.START_EXERCISE"> <intent android:targetPackage="com.example.myapp" android:targetClass="com.example.myapp.ExerciseActivity"> <parameter android:name="exercise.name" android:key="exercise" /> </intent> </capability> <shortcut android:shortcutId="CARDIO_RUN"> <capability-binding android:key="actions.intent.START_EXERCISE"> <parameter-binding android:key="exercise.name" android:value="@array/run_names" /> </capability-bindig> </shortcut>
Обновите логику вашего приложения для обработки входящих действий приложения.
//FitMainActivity.kt private fun handleIntent(data: Uri?) { var actionHandled = true val startExercise = intent?.extras?.getString(START_EXERCISE) if (startExercise != null){ val type = FitActivity.Type.find(startExercise) val arguments = Bundle().apply { putSerializable(FitTrackingFragment.PARAM_TYPE, type) } updateView(FitTrackingFragment::class.java, arguments) } else{ showDefaultView() actionHandled = false } notifyActionSuccess(actionHandled) }
Предварительный просмотр, тестирование и публикация вашего приложения
Действия приложения предоставляют инструменты для проверки и тестирования вашего приложения. Более подробную информацию можно найти в разделе Плагин Google Assistant для Android Studio . После того как вы протестировали свое приложение и создали тестовый выпуск, вы можете запросить проверку и развертывание действий приложения . Ознакомьтесь со следующими рекомендациями по устранению распространенных ошибок.
Лучшие практики
Создайте положительный пользовательский опыт при интеграции вашего приложения с Ассистентом, следуя этим рекомендуемым рекомендациям.
Покажите соответствующий или релевантный экран подтверждения, а также тактильную и звуковую обратную связь, чтобы ответить на запрос пользователя — либо при успешном выполнении запроса, либо для предупреждения об ошибке.
Базовое качество | Лучшее качество | Лучшее качество |
---|---|---|
|
|
|
Распространенные ошибки и решения
В следующих случаях ошибки используйте следующий рекомендуемый способ обмена сообщениями ConfirmationActivity
приложения.
Случай ошибки | Пример взаимодействия с пользователем | Ответ приложения |
---|---|---|
Деятельность уже продолжается | «Начать мое имя упражнения » «Продолжить мое имя упражнения » | Ошибка отображения: уже действующая активность». |
Никакая активность не началась | «Приостановить/остановить мое имя упражнения » | Ошибка отображения: «Нет активности». |
Несовпадение видов деятельности | «Приостановить/остановить мое имя упражнения » — это тип упражнения, отличный от текущего действия. | Ошибка отображения: «Несоответствие типа действия». |
Ошибка входа | «Начать мое имя упражнения », когда пользователь не вошел в приложение. | Используйте тактильную функцию, чтобы предупредить пользователя и перенаправить на экран входа в систему. |
Ошибка разрешений | У пользователя нет разрешения начать запрошенное действие. | Воспроизведите тактильную функцию, чтобы предупредить пользователя и перенаправить на экран запроса разрешения. |
Проблема с датчиком | У пользователя отключены службы определения местоположения в настройках устройства. | Используйте тактильную функцию, чтобы предупреждать пользователей и показывать экран ошибки датчика. Необязательные следующие шаги:
|