Функции в shortcuts.xml позволяют объявить типы действий, которые пользователи могут выполнять, чтобы запустить ваше приложение и сразу перейти к определенной задаче. Функция состоит из названия действия и intent, указывающего на целевой объект в приложении, который соответствует намерению пользователя.
Определите возможности в файле shortcuts.xml
Элементы capability определяются в файле ресурсов shortcuts.xml в проекте разработки приложения для Android. Чтобы определить элемент capability, выполните следующие действия:
- Создайте ресурс
shortcuts.xml, следуя инструкциям в статье Как создавать статические ярлыки. Включите в функцию следующую обязательную информацию:
Название функции. Действие, которое должно поддерживаться в приложении. Ознакомьтесь с документацией по компоненту, для которого требуется определение возможностей.
Целевая страница в приложении. Страница, которая открывается при выполнении действия. Определите целевые страницы в приложении с помощью элементов
intent, вложенных в элементcapability.Сопоставления параметров. Каждый объект
intentможет содержать параметры, которые будут передаваться как данныеextraнамерения.
В примере ниже показано, как в файле shortcuts.xml определить функцию actions.intent.START_EXERCISE, которая позволяет пользователям запускать тренировку в фитнес-приложении с помощью голосовых команд Ассистенту.
<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>
В примере выше атрибут android:name <capability> относится к встроенному интенту START_EXERCISE. Если пользователь активирует это встроенное намерение, сказав Ассистенту Окей, Google, начни пробежку в ExampleApp, Ассистент выполнит запрос, используя информацию, указанную во вложенном элементе intent. В этом примере intent определяет следующие сведения:
android:targetPackageзадает целевой пакет приложения для этого намерения.- Поле
android:targetClassуказывает на целевой объект activity:com.example.sampleApp.ExerciseActivity. - Интент
parameterобъявляет о поддержке параметра BIIexercise.nameи указывает, как передать значение параметра, полученное от пользователя, в качестве дополнительных данных вintent.
Как связать ярлыки с функцией
Определив возможность, вы можете расширить ее функциональность, связав с ней статические или динамические ярлыки. Способ связывания ярлыков с capability зависит от реализуемой функции и слов, включенных в запрос пользователя. Например, пользователь может начать пробежку в вашем фитнес-приложении, сказав Ассистенту: "Окей, Google, начни пробежку в ExampleApp". Ассистент может использовать ярлык, чтобы запустить экземпляр capability, который определяет допустимый объект упражнения "бег" для параметра exercise.name.