Системные голосовые действия больше не являются рекомендуемым путем для интеграции с Ассистентом. Дополнительные сведения об альтернативах сборки см. в документации по действиям приложения .

Начните работу с системными голосовыми командами

Google Voice Actions распознает множество голосовых и печатных запросов и создает для них намерения Android. Такие приложения, как Play Music и Keep, могут получать эти намерения и выполнять запрошенное действие. Ваше приложение также может заявить о поддержке некоторых из этих действий:

  1. Определение фильтра намерений
  2. Обрабатывайте намерение в своем приложении
  3. Обновите статус завершения приложения

Подробный список поддерживаемых системных действий см. в Справочнике по системным действиям .

Шаг 1. Определите фильтр намерений

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

Например, если ваше приложение может устанавливать будильник , добавьте в файл манифеста следующий фильтр намерений:

<activity ...>
    <intent-filter>
        <action android:name="android.intent.action.SET_ALARM"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

Если у пользователя есть несколько приложений, которые могут обрабатывать намерение « Установить будильник », голосовые действия Google позволяют ему выбрать приложение для выполнения действия:

Изображение, показывающее голосовые действия Google, вызывающие приложение

Рис. 1. Голосовые действия позволяют пользователям выбирать из приложений, поддерживающих системные действия.

Шаг 2. Обработайте намерение в своем приложении

Когда ваше приложение получает намерение, оно должно выполнить действие. В этом примере он должен установить будильник. См. пример кода ниже.

Шаг 3. Обновите статус завершения приложения

API индексирования приложений позволяет отправлять завершенные действия приложения в Google. Позже Google может снова показать ваш контент пользователям с помощью автозаполнения запросов из приложения Google.

После того как ваше приложение выполнит действие, вызовите метод AppIndexApi.end() с соответствующим типом действия, например Action.TYPE_ADD .

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

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

public class MainActivity extends Activity {

    private static final Uri ALARM_URI = Uri.parse("android-app://com.myclockapp/set_alarm_page");

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...

        // Get the intent
        Intent intent = getIntent();
        if (AlarmClock.ACTION_SET_ALARM.equals(intent.getAction())) {
            if (intent.hasExtra(AlarmClock.EXTRA_HOUR)) {
                // Step 2: get the rest of the intent extras and set an alarm
                ...
            }

            // Step 3: report the action through the App Indexing API
            Thing alarm = new Thing.Builder()
                    .setName("Alarm for 4:00 PM")
                    .setDescription("Alarm set for 4:00 PM, with the 'Argon' ringtone"
                                    + " and vibrate turned on.")
                    .setUrl(APP_URI)
                    .build();

            Action setAlarmAction = new Action.Builder(Action.TYPE_ADD)
                    .setObject(alarm)
                    .setActionStatus(Action.STATUS_TYPE_COMPLETED)
                    .build();

            AppIndex.AppIndexApi.end(mClient, setAlarmAction);
        }
    }

    ...

}

Справочник по системным действиям

Google Voice Actions запускает намерение, когда распознает любое из действий, перечисленных в следующих таблицах.

Действия по тревоге

Действие Пример команды
Установить будильник поставить будильник на 6 утра
Установить таймер поставить таймер на 5 минут

Коммуникационные действия

Действие Пример команды
Позвонить по телефону звоните 555-5555
позвонить в старбакс
позвони маме
вызов голосовой почты

Действия вызова запускаются только на устройствах со встроенным номеронабирателем (например, на телефоне) и на устройствах с приложениями, поддерживающими набор номера (например, на планшете с приложением VoIP).

Фитнес действия

Действие Пример команды
Начать/остановить велопрогулку начать велопрогулку
Начать/остановить пробежку начать пробежку
Начать/остановить тренировку начать тренировку
Показать пульс показать частоту сердечных сокращений
Показать количество шагов показать количество шагов

Локальные действия

Действие Пример команды
Заказать такси заказать такси

Действие « Заказать такси» запускается только на Android Wear.

Действия СМИ

Действие Пример команды
Воспроизведение музыки из поиска играть майкл джексон билли джин
включи музыку
играть классическую музыку
играть от стены
включи Pink Floyd на vnstreamer
Сделать фото сделать фото
Записать видео записать видео

Открытые действия

Действие Пример команды
Открыть URL открыть twitter.com
Открыть приложение открыть твиттер (работает по умолчанию; никаких конкретных намерений.)

Действия по повышению производительности

Действие Пример команды
Пометь взять на заметку купить продукты

Поисковые действия

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