Как добавить возможности в ярлыки

Функции в shortcuts.xml позволяют объявить типы действий, которые пользователи могут выполнять, чтобы запустить ваше приложение и сразу перейти к определенной задаче. Функция состоит из названия действия и intent, указывающего на целевой объект в приложении, который соответствует намерению пользователя.

Определите возможности в файле shortcuts.xml

Элементы capability определяются в файле ресурсов shortcuts.xml в проекте разработки приложения для Android. Чтобы определить элемент capability, выполните следующие действия:

  1. Создайте ресурс shortcuts.xml, следуя инструкциям в статье Как создавать статические ярлыки.
  2. Включите в функцию следующую обязательную информацию:

    • Название функции. Действие, которое должно поддерживаться в приложении. Ознакомьтесь с документацией по компоненту, для которого требуется определение возможностей.

    • Целевая страница в приложении. Страница, которая открывается при выполнении действия. Определите целевые страницы в приложении с помощью элементов 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 объявляет о поддержке параметра BII exercise.name и указывает, как передать значение параметра, полученное от пользователя, в качестве дополнительных данных в intent.

Как связать ярлыки с функцией

Определив возможность, вы можете расширить ее функциональность, связав с ней статические или динамические ярлыки. Способ связывания ярлыков с capability зависит от реализуемой функции и слов, включенных в запрос пользователя. Например, пользователь может начать пробежку в вашем фитнес-приложении, сказав Ассистенту: "Окей, Google, начни пробежку в ExampleApp". Ассистент может использовать ярлык, чтобы запустить экземпляр capability, который определяет допустимый объект упражнения "бег" для параметра exercise.name.