Как интегрировать действие OPEN_APP_FEATURE в приложение Android?

Я хочу иметь возможность запускать некоторые функции моего приложения для Android ("Пуск", "Стоп") с помощью голосовых команд из Google Assistant.

  1. Каковы следующие шаги, чтобы иметь возможность запустить эти функции из Google Assistant?
  2. Какие запросы на естественном языке поддерживаются этой функцией открытого приложения?

Я интегрировал actions.intent.OPEN_APP_FEATURE в мое приложение и успешно протестировал его с помощью инструмента тестирования действий приложения в Android Studio.

мой actions.xml:

<?xml version="1.0" encoding="utf-8"?>
<actions>
    <action intentName="actions.intent.OPEN_APP_FEATURE">
        <fulfillment urlTemplate="http://www.my-app.com/{?featureName}">
            <parameter-mapping
                intentParameter="feature"
                urlParameter="featureName" />
        </fulfillment>

        <parameter name="feature">
            <entity-set-reference entitySetId="FeatureEntitySet" />
        </parameter>
    </action>

    <entity-set entitySetId="FeatureEntitySet">
        <entity
            name="@string/start_capture"
            identifier="START" />
        <entity
            name="@string/stop_capture"
            identifier="STOP" />
    </entity-set>
</actions>

Когда я спрашивал у Google Assistant что-то вроде "Открыть старт из MyApp", я ожидал того же поведения, что и при тестировании с помощью инструмента тестирования действий приложения (откройте функцию приложения), но вместо этого Google Assistant предоставляет общие веб-результаты.

2 ответа

Решение

Оказывается, существует ошибка, препятствующая запуску функции " Открыть приложение" из Google Assistant.

Согласно документам для OPEN_APP_FEATURE:

Поддерживаемые объекты

Вы должны указать объекты для feature,

Поэтому вы должны попытаться предоставить значения, поддерживаемые вашим приложением для feature параметр с использованием встроенного инвентаря. Это позволяет вам сказать Ассистенту, какие значения следует ожидать для этого параметра. Вот пример этого в примере приложения здесь.

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

Я считаю, что то, что вы тестируете, должно работать - "Открыть [функцию] в MyApp". Если он не работает с помощью голоса, но работает с помощью Test Tool, то это может быть ошибкой. Единственное, что нужно проверить, это имя вызова, установленное в Test Tool, совпадает с тем, с чем вы тестируете ("MyApp" выше). В противном случае вы можете отправить сообщение об ошибке здесь.

Другие вопросы по тегам