Возможности в shortcuts.xml позволяют вам объявлять типы действий, которые пользователи могут предпринять для запуска вашего приложения и непосредственного выполнения определенной задачи.
Например, действия приложения Google Assistant используют возможности, позволяющие разработчикам расширять функции приложения до встроенных намерений (BII), позволяя пользователям активировать и управлять этими функциями с помощью голосовых команд. Возможность состоит из названия действия и intent , указывающего на целевой объект в вашем приложении, который реализует намерение пользователя.
Определить возможности в shortcuts.xml
Элементы capability определяются в файле ресурсов shortcuts.xml вашего проекта разработки приложения для Android. Чтобы определить элемент capability , выполните следующие действия:
- Создайте ресурс
shortcuts.xml, следуя инструкциям в разделе Создание статических ярлыков . Включите в свои возможности следующую обязательную информацию:
Имя возможности: действие, которое должно поддерживать ваше приложение. Сведения о функции, требующей определения возможностей, см. в документации к компоненту. Голосовые команды App Actions используют
Action IDBII для имён возможностей, который можно найти в справочнике BII . Например, для BIIGET_THINGAction IDуказан какactions.intent.GET_THING.Назначение приложения: место назначения в вашем приложении, которое действие запускает для выполнения запроса пользователя. Определите назначения приложения с помощью элементов
intent, вложенных вcapability.Сопоставление параметров: каждое
intentможет содержать параметры, передаваемые в качествеextraданных намерения. Например, каждое BI-приложение «Действия приложения» включает поля, представляющие информацию, которую пользователи часто предоставляют в запросах, запускающих BI-приложение.
В следующем примере показано определение возможности в shortcuts.xml для actions.intent.START_EXERCISE , BII, которая позволяет пользователям использовать голосовые команды с Ассистентом, чтобы начать тренировку в фитнес-приложении:
<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="com.example.sampleApp"
android:targetClass="com.example.sampleApp.ExerciseActivity">
<parameter
android:name="exercise.name"
android:key="exerciseType"/>
</intent>
</capability>
</shortcuts>
В предыдущем примере атрибут <capability> android:name ссылается на BII START_EXERCISE . Если пользователь вызывает этот BII, спрашивая Ассистента: «Окей, Google, начни пробежку в ExampleApp», Ассистент выполняет запрос пользователя, используя информацию, предоставленную во вложенном элементе intent . intent в этом примере определяет следующие данные:
-
android:targetPackageустанавливает целевой пакет приложения для этого намерения. - Поле
android:targetClassуказывает целевую активность:com.example.sampleApp.ExerciseActivity. -
parameterнамерения объявляет поддержку параметра BIIexercise.nameи способ передачи значения параметра, полученного от пользователя, в качестве дополнительных данных вintent.
Свяжите ярлыки с возможностями
Определив возможность, вы можете расширить её функциональность, связав с ней статические или динамические сочетания клавиш. Способ привязки сочетаний клавиш к capability зависит от реализуемой функции и слов, содержащихся в запросе пользователя. Например, когда пользователь начинает пробежку в вашем приложении для отслеживания фитнеса, сказав Ассистенту: «Окей, Google, начни пробежку в ExampleApp», Ассистент может использовать сочетание клавиш для запуска экземпляра capability , которая определяет допустимую сущность упражнения «бег» для параметра exercise.name .
Дополнительную информацию о связывании ярлыков с действиями приложений см. в разделе Обзор действий приложений .