使用GDK启动应用程序时嵌套多个语音触发器的方法

时间:2013-11-21 06:11:41

标签: google-glass google-gdk

使用GDK在Google Glass上启动应用时,是否可以嵌套语音触发器?例如,而不是只说“好,玻璃” - > “它的功率水平是多少?”我想让应用程序提供一个选项。例如“ok,glass” - > “它的功率水平是多少?” - > “超过9000”或“低于9000”。任何帮助都会很棒!

2 个答案:

答案 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);