I had a Glassware that launched using a voice command on the ok glass menu. It worked great in XE12, but in XE16 it does not show up in the main menu.
Here's a snippet from my AndroidManifest.xml
showing my voice command configuration:
<service
android:name="com.mimming.sugarglider.MapDisplayService"
android:label="@string/app_name"
android:enabled="true">
<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/show_map" />
</service>
And here's the contents of show_map.xml
, which defines my voice command:
<trigger keyword="@string/show_me_a_map">
<constraints network="true" />
</trigger>
What's wrong?
Answering my own question, since this seems to be impacting a lot of developers.
Voice commands changed a bit in XE16. Unlisted voice commands, like the one specified in your configuration, now require an additional permission. Add this to your manifest:
<uses-permission android:name="com.google.android.glass.permission.DEVELOPMENT" />
When you're ready to release your Glassware, you must use a built-in static voice command. XML for this kind of command would look more like this:
<?xml version="1.0" encoding="utf-8"?>
<trigger command="START_A_RUN" />
Where START_A_RUN
is one of the items from this list. If none of the listed commands are appropriate for your Glassware, you should request the addition of a voice command. This can take some time, so it's best to do this as early as possible.
来源:https://stackoverflow.com/questions/23097828/why-is-my-voice-command-missing-from-the-ok-glass-menu-in-xe16