使用GDK在Google Glass上启动应用时,是否可以嵌套语音触发器?例如,而不是只说“好,玻璃” - > “它的功率水平是多少?”我想让应用程序提供一个选项。例如“ok,glass” - > “它的功率水平是多少?” - > “超过9000”或“低于9000”。任何帮助都会很棒!
答案 0 :(得分:13)
如果您在Glass上安装了多个活动/服务,这些活动/服务具有相同的语音触发器意图过滤器,则其所有名称(基于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页面找到更多详细信息。
答案 1 :(得分:3)
执行此操作的正确方法是在触发器
中使用输入标记<trigger keyword="@string/start_app" >
<input prompt="@string/promt_text" />
</trigger>
这会提示输入并等待更多的音频语音。
然后在您的活动中,您可以使用以下方式捕获此文本:
ArrayList<String> text = getIntent().getExtras().getStringArrayList(RecognizerIntent.EXTRA_RESULTS);