我有一个Glassware,它使用ok glass菜单上的语音命令启动。它在XE12中运行得很好,但在XE16中它不会出现在主菜单中。
以下是我的AndroidManifest.xml
中的一个片段,显示了我的语音命令配置:
<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>
以下是show_map.xml
的内容,它定义了我的语音命令:
<trigger keyword="@string/show_me_a_map">
<constraints network="true" />
</trigger>
怎么了?
回答我自己的问题,因为这似乎影响了很多开发人员。
XE16中的语音命令发生了一些变化。未列出的语音命令,如配置中指定的命令,现在需要额外的权限。将此添加到您的清单中:
<uses-permission android:name="com.google.android.glass.permission.DEVELOPMENT" />
当您准备发布Glassware时,必须使用内置的静态语音命令。这种命令的XML看起来更像这样:
<?xml version="1.0" encoding="utf-8"?>
<trigger command="START_A_RUN" />
其中START_A_RUN
是该列表中的项目之一。如果列出的命令都不适合您的Glassware,您应该请求添加语音命令。这可能需要一些时间,所以最好尽早完成。