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

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

Например, действия приложения Google Assistant используют возможности, позволяющие разработчикам расширять функции приложения до встроенных намерений (BII), позволяя пользователям активировать и управлять этими функциями с помощью голосовых команд. Возможность состоит из имени действия и intent нацеленного на место назначения в вашем приложении, которое разрешает намерение пользователя.

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

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

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

    • Имя возможности: действие, которое вы хотите, чтобы ваше приложение поддерживало. Обратитесь к документации компонента для функции, требующей определения возможностей. Голосовые команды App Actions используют Action ID BII для имен возможностей, который можно найти в справочнике по BII . Например, GET_THING BII указывает Action ID как actions.intent.GET_THING .

    • Назначение приложения: место назначения в вашем приложении, которое запускает действие для выполнения запроса пользователя. Определите места назначения приложения, используя элементы intent , вложенные в capability .

    • Сопоставления параметров: каждое intent может содержать параметры, которые будут передаваться как extra данные намерения. Например, каждый BII действий приложения включает поля, представляющие информацию, которую пользователи часто предоставляют в запросах, которые запускают BII.

В следующем примере показано определение возможности в 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 относится к START_EXERCISE BII. Если пользователь вызывает этот BII, спрашивая Ассистента: «Эй, Google, начни запуск в exampleApp», Ассистент выполняет запрос пользователя, используя информацию, предоставленную во вложенном элементе intent . intent в этом примере определяет следующие сведения:

  • android:targetPackage устанавливает целевой пакет приложения для этого намерения.
  • Поле android:targetClass указывает целевое действие: com.example.sampleApp.ExerciseActivity .
  • parameter Intent объявляет о поддержке параметра BII exercise.name и о том, как передать значение параметра, полученное от пользователя, в качестве дополнительных данных в intent .

Свяжите ярлыки с возможностью

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

Дополнительные сведения о связывании ярлыков с действиями приложения см. в разделе Обзор действий приложения .