Есть ли способ установить триггеры голоса при запуске приложения в Google Glass с помощью GDK? Например, вместо того, чтобы просто сказать «хорошо, стекло» -> «Каков его уровень мощности?» Я бы хотел, чтобы приложение было доступно. Например, «ОК, стекло» -> «Каков его уровень мощности?» -> «Более 9000» ИЛИ «Менее 9000». Любая помощь будет замечательной!Способ установки нескольких голосовой триггеров при запуске приложения с помощью GDK
ответ
Если у вас есть несколько направлений деятельности/услуги, установленные на стекла, которые имеют тот же голос вызывают пристальный фильтр, все их имена (на основе атрибута 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 Voice Input.
Правильный способ сделать это с помощью ввода тег внутри триггера
<trigger keyword="@string/start_app" >
<input prompt="@string/promt_text" />
</trigger>
Это побуждает вход и ожидает получения дополнительной звуковой речи.
Тогда в вашей деятельности вы можете захватить этот текст с:
ArrayList<String> text = getIntent().getExtras().getStringArrayList(RecognizerIntent.EXTRA_RESULTS);
Это работало, Вы так много людей! – Sevros
Не должен 'android: name =" Боулинг "' быть 'android: label =" Bowling "'? Я уверен, что он возвращается к имени активности, но метка должна быть соответствующим атрибутом. – JRomero
Ой, да, вы правы, спасибо, что поймали это. Я обновил ответ. –