Способ установки нескольких голосовой триггеров при запуске приложения с помощью GDK

Есть ли способ вставить голосовые триггеры при запуске приложения в Google Glass с помощью GDK? Например, вместо того, чтобы просто сказать "хорошо, стекло" → "Каков его уровень мощности?" Я бы хотел, чтобы приложение было доступно. Например, "хорошо, стекло" → "Каков его уровень мощности?" → "Более 9000" ИЛИ "Менее 9000". Любая помощь будет большой!

Ответ 1

Если на стекле установлено несколько действий/сервисов, имеющих один и тот же фильтр намерений с использованием голосового пуска, все их имена (основанные на атрибуте android:label тега <activity> или <service> в AndroidManifest.xml) будут появляются в "подменю" неоднозначности, когда вы говорите, что голосовой пуск.

Например (предположим, что res/xml/play_a_game_trigger.xml представляет голосовой триггер для строки "играть в игру" ):

<activity android:label="Tennis">
    <intent-filter>
        <action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
    </intent-filter>
    <meta-data android:name="com.google.android.glass.VoiceTrigger"
        android:resource="@xml/play_a_game_trigger" />
</activity>
<activity android:label="Bowling">
    <intent-filter>
        <action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
    </intent-filter>
    <meta-data android:name="com.google.android.glass.VoiceTrigger"
        android:resource="@xml/play_a_game_trigger" />
</activity>

даст вам поток голосового меню, который выглядит как

ok glass → play a game → Tennis
                         Bowling

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

Подробнее вы можете найти на странице Голосовой ввод документации GDK.

Ответ 2

Правильный способ сделать это - использовать тег input внутри триггера

<trigger keyword="@string/start_app" >

    <input prompt="@string/promt_text" />

</trigger>

Это вызывает ввод и ожидает больше звуковой речи.

Затем в вашей деятельности вы можете записать этот текст с помощью:

ArrayList<String> text = getIntent().getExtras().getStringArrayList(RecognizerIntent.EXTRA_RESULTS);