Как начать определенную деятельность, сказав ОК Google?
Я хотел бы иметь два вида деятельности. FirstActivity
должен быть запущен из лаунчера (нажав на иконку) и SecondActivity
должен быть запущен с помощью голосовой команды (говоря: "ОК, Google, начни играть пример").
Проблема в том, что только для моей текущей конфигурации FirstActivity
запущен Также метод isVoiceInteraction
возвращается false
, Я также не вижу никаких значений в flags
это указывает, что деятельность была начата голосом.
Вот часть AndroidManifest.xml
:
<application android:label="play example">
<activity android:name="com.example.FirstActivity" android:label="play example">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.example.EXAMPLE_ACTION" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="com.example.SecondActivity" android:label="play example">
<intent-filter>
<action android:name="com.example.EXAMPLE_ACTION" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.VOICE" />
</intent-filter>
</activity>
</application>
Здесь говорится:
Чтобы указать текст, который следует произносить после "Пуск", укажите атрибут метки для действия, которое вы хотите запустить.
Но когда я меняюсь label
за SecondActivity
это не помогает.
Я использую API версии 26.
Как настроить конфигурацию для обработки описанного поведения?
1 ответ
Насколько мне известно isVoiceInteraction
всегда вернется false
когда приложение открывается с помощью "открытой" голосовой команды. Однако сценарий, который вы описали, имея другое действие для ответа на голосовые команды, должен был сработать.
Единственное, что вы могли пропустить, это поставить действие android.intent.action.MAIN
во втором упражнении.