Действия приложения для автомобилей

Голосовое управление позволяет водителю выполнять задачи, не отрывая рук от руля и глаз от дороги. С помощью App Actions для автомобильных приложений водители могут использовать Google Assistant для управления приложениями Android в своей информационно-развлекательной системе, говоря что-то вроде: «Окей, Google, найди уличную парковку в exampleApp» .

Действия приложений работают с автомобильными приложениями , представляющими достопримечательности (POI) . В этом руководстве описаны конкретные требования и ограничения для интеграции действий приложения в ваше приложение POI.

Как это работает

Действия приложения расширяют функциональность приложения до Ассистента, позволяя пользователям получать доступ к функциям приложения с помощью голоса. Когда пользователь вызывает действие приложения, Ассистент сопоставляет запрос со встроенным намерением ( BII ), объявленным в ресурсе shortcuts.xml вашего приложения, и запускает ваше приложение на запрошенном экране.

Вы заявляете о поддержке BII в своем приложении, используя элементы capability Android. Когда вы загружаете свое приложение с помощью консоли Google Play, Google регистрирует возможности, заявленные в вашем приложении, и делает их доступными для пользователей из Ассистента.

Диаграмма, показывающая выполнение автомобиля.

  1. Пользователь запускает Ассистента и делает голосовой запрос для определенного приложения.
  2. Ассистент сопоставляет запрос с предварительно обученной моделью (BII) и извлекает все параметры, поддерживаемые BII.
  3. В этом примере Ассистент сопоставляет запрос с GET_CHARGING_STATION BII, извлекает параметр местоположения «SFO» и преобразует местоположение в его географические координаты.
  4. Приложение запускается через определение выполнения для этого BII.
  5. Приложение обрабатывает выполнение заказов, отображая варианты зарядных станций в информационно-развлекательной системе водителя.

Ограничения

Реализации App Actions в автомобиле имеют следующие ограничения:

Требования

Выполните следующие шаги, чтобы подготовить автомобильное приложение к действиям приложения:

Определите свое намерение и его реализацию

Первый шаг к голосовому включению автомобильного приложения с помощью действий приложения — определить, какие голосовые команды или намерения пользователя поддерживает ваше приложение. Затем вы определяете выполнение для каждого намерения, чтобы указать, как ваше приложение должно удовлетворять запрос.

  • Какие цели поддерживает ваше автомобильное приложение?

    Действия приложения предоставляют предварительно обученные голосовые модели, называемые встроенными намерениями (BII), которые могут понимать и интерпретировать голосовые команды пользователя, когда он говорит «Окей, Google» . Чтобы ответить на голосовые запросы, вы просто указываете Ассистенту BII, которые поддерживает ваше приложение. Например, если вы хотите, чтобы ваше приложение помогало найти парковку, вы реализуете GET_PARKING_FACILITY BII. Или внедрите GET_CHARGING_STATION BII, чтобы помочь пользователям находить станции зарядки электромобилей.

  • Как ваше приложение должно выполнять каждое намерение?

    Ваше приложение выполняет голосовой запрос, открываясь на соответствующем экране. Действия приложения обеспечивают выполнение с помощью параметров, извлеченных из запроса пользователя, что позволяет адаптировать ответ к потребностям пользователя.

Интегрируйте действия приложения

Определив стратегию выполнения, выполните следующие действия, чтобы включить голосовое приложение для автомобиля:

  1. Откройте свой основной файл AndroidManifest.xml и объявите поддержку ярлыков Android. Вы используете элементы ярлыка capability , чтобы объявить Ассистенту BII, которые поддерживает ваше приложение. Дополнительные сведения см. в разделе Добавление возможностей .

     <!-- AndroidManifest.xml -->
     <meta-data
         android:name="android.app.shortcuts"
         android:resource="@xml/shortcuts" />
    
  2. Затем добавьте элемент <intent-filter> в AndroidManifest.xml . Это позволяет Ассистенту использовать глубокие ссылки для подключения к содержимому вашего приложения.

    • Для выполнения Android Auto <intent-filter> аналогичен вашему мобильному приложению.

    • Для автомобильной ОС Android сеанс CarAppService вашего приложения запускает Ассистента. Чтобы разрешить сеансу активировать вашу глубокую ссылку, укажите <intent-filter> в элементе <activity> файла AndroidManifest.xml .

    <!-- AndroidManifest.xml -->
    <activity
      ...
      android:name="androidx.car.app.activity.CarAppActivity">
      ...
      <intent-filter>
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <data
            android:scheme="YOUR_SCHEME"
            android:host="YOUR_HOST" />
      </intent-filter>
    </activity>
    
  3. Если у вас еще нет файла shortcuts.xml в каталоге res/xml вашего приложения, создайте новый. Сведения о том, как действия приложений используют ярлыки Android, см. в разделе Создание ярлыков.xml .

    В shortcuts.xml реализуйте capability для выбранного вами BII. Затем добавьте вложенный <intent> , чтобы определить выполнение приложения.

    <!-- shortcuts.xml -->
    <?xml version="1.0" encoding="utf-8"?>
    <shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
    
      <capability android:name="actions.intent.GET_PARKING_FACILITY">
        <intent>
          <url-template
          android:value="YOUR_SCHEME://YOUR_HOST{?name,address,disambiguatingDescription,latitude,longitude}">
    
          <!-- Facility name, e.g. "Googleplex" -->
          <parameter
            android:name="parkingFacility.name"
            android:key="name"/>
          <!-- Address, e.g. "1600 Amphitheatre Pkwy, Mountain View, CA 94043" -->
          <parameter
            android:name="parkingFacility.address"
            android:key="address"/>
          <!-- Disambiguate the type of service, e.g. "valet" -->
          <parameter
            android:name="parkingFacility.disambiguatingDescription"
            android:key="disambiguatingDescription"/>
          <!-- Latitude, e.g. "37.3861" -->
          <parameter
            android:name="parkingFacility.geo.latitude"
            android:key="latitude"/>
          <!-- Longitude, e.g. "-122.084" -->
          <parameter
            android:name="parkingFacility.geo.longitude"
            android:key="longitude"/>
        </intent>
      </capability>
    </shortcuts>
    
  4. Наконец, обновите логику Session() вашего автомобильного приложения, чтобы обрабатывать входящие действия приложения. В следующих примерах демонстрируется обработка намерений для Session.onCreateScreen() и Session.onNewIntent() .

    onCreateScreen()

    Котлин

    @Override
    fun onCreateScreen(@NonNull intent: Intent): Screen {
      if (intent.getData() != null) {
          val uri: Uri = intent.getData()
          // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
          // Build your Templates with parsed uri parameters
      ...
     }
    }

    Ява

    @Override
    public Screen onCreateScreen(@NonNull Intent intent) {
    if (intent.getData() != null) {
      Uri uri = intent.getData();
      // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
      // Build your Templates with parsed uri parameters
    ...
    }
    }

    onNewIntent()

    Котлин

    @Override
    fun onNewIntent(@NonNull intent: Intent): Screen {
      if (intent.getData() != null) {
          val uri: Uri = intent.getData()
          // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
          // Build your Templates with parsed uri parameters
          ...
      }
    }

    Ява

    @Override
    public void onNewIntent(@NonNull Intent intent) {
    if (intent.getData() != null) {
     Uri uri = intent.getData();
     // uri = "YOUR_SCHEME://YOUR_HOST?name=Levis%20center"
     // Build your Templates with parsed uri parameters
     ...
    }
    }

Предварительный просмотр, тестирование и публикация вашего приложения

Действия приложения предоставляют инструменты для предварительного просмотра и тестирования вашего приложения. Посетите обзор действий приложения , чтобы получить информацию об этом инструменте, а также узнать, как опубликовать автомобильное приложение с голосовой поддержкой в ​​Play Store.