在玻璃应用程序内创build“OK玻璃”风格的菜单

我刚刚开始为Google Glass开发,我知道GDK是相当新的,所以这可能还不可能,但是我正在试图:

与“okay glass”屏幕上的“拨打电话”提示或“发送邮件”提示一样,我希望我的应用程序在用语音select时可以select更多的语音选项。 通过这两个示例,您将看到一个联系人列表,您可以上下点头以查看更多的联系人信息,而应用程序只会select其中一个显示的选项进一步操作。 目前有什么办法可以做我自己的应用程序?

任何input赞赏!

Solutions Collecting From Web of "在玻璃应用程序内创build“OK玻璃”风格的菜单"

您可以在“活动”启动后打电话来显示“语音识别器”。 因此,您可以在启动时触发语音提示,然后在您的Activity的onResume()中使用某种提示调用语音识别器(也可以将收集的初始语音作为提示string) :

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra( RecognizerIntent.EXTRA_PROMPT, "ok glass, here's my prompt" ); startActivityForResult(intent, 0); 

然后您需要一个onActivityResult()方法来处理VoiceRecognizer的返回forms。

这是在GDK文档中描述的: https : //developers.google.com/glass/develop/gdk/input/voice

不知道有没有其他的方法。

我从另一个SO问题中find了这个答案,这个问题看起来和你想要的完全一样 我自己尝试了自己的玻璃器皿,它完美的工作。 正如在下面的答案中提到的,一个告诫,其他应用程序使用相同的“OK玻璃”语音命令将共享子菜单; 在下面的例子中,例如,其他一些应用程序可能会添加其他游戏,如“高尔夫球”。 另一个潜在的问题是,您必须为子菜单中的每个选项都有一个“活动”或“服务”。

“如果您在Glass上安装了多个具有相同语音触发意图filter的活动/服务,则其所有名称(基于AndroidManifest.xml中的<activity><service>标签的android:label属性)将显示在当您说出语音触发器时,消除歧义“子菜单”。

例如(假设res/xml/play_a_game_trigger.xml代表string“play a game”的语音触发器):

 <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> 

会给你一个看起来像一个语音菜单stream

 ok glass → play a game → Tennis Bowling 

但请注意,此菜单还包括来自其他使用相同语音触发器的APK的活动/服务。

您可以在GDK文档的语音input页面find更多的细节。“

你问你是否可以添加语音命令玻璃,将触发你的应用程序? 如果是的话 – 绝对。 实际上,这是在GDK上启动应用的build议方式。

有关详细信息,请参阅https://developers.google.com/glass/develop/gdk/input/voice#launching_glassware ,但基本上你会

  1. 将资源添加到描述触发器和提示的res/values/strings.xml
  2. res/xml/<my_voice_trigger>.xml中创build一个使用string值作为关键字的资源,并设置input提示符
  3. 为VOICE_TRIGGER动作注册一个intentfilter

(顺便说一下,看起来动词是最好的语音触发器 – 它们在“ok”,“glass”菜单项中更自然地stream动。)

现在,您可以使用框架API来显示您的活动中的确定玻璃菜单,请查看有关上下文语音命令的Docs

https://developers.google.com/glass/develop/gdk/voice#contextual_voice_commands