我已按照官方文档中的确切步骤操作,但仍无法让我的应用程序开始使用自定义语音命令。遵循的步骤是:
1在strings.xml中添加自定义语音命令的新字符串资源:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Hello World!</string>
<string name="glass_voice_trigger">start example</string>
</resources>
2为语音启动定义创建一个新的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<trigger keyword="@string/glass_voice_trigger" />
3在AndroidManifest.xml中请求适当的权限:
<uses-permission android:name="com.google.android.glass.permission.DEVELOPMENT" />
4清单部分如下:
<service
android:name="pl.infoshare.sample.helloworld.HelloWorldService"
android:icon="@drawable/ic_lap"
android:label="@string/app_name"
android:enabled="true"
android:exported="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/voice_trigger_start" />
</service>
但是,我无法使用语音命令启动应用程序。如果我更改为其中一个预定义的语音命令,应用程序会显示在时间轴上,我可以使用语音命令启动它。我错过了什么吗?
答案 0 :(得分:6)
仔细研究这个问题,我没有看到任何突然出现的错误信息。因此,我创建了一个使用自定义语音命令启动的small sample GDK project,并在我的XE17.1设备上运行正常。 (奖励,它演示了一个低频LiveCard!)
尝试从GitHub下拉我的样本,看看是否可以使用以下命令启动它:
'OK Glass, start my awesome app'
以下是一些相关内容。
的AndroidManifest.xml:
<uses-permission android:name="com.google.android.glass.permission.DEVELOPMENT" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.DeviceDefault">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:immersive="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<service
android:name=".LowFreqLiveCardService"
android:enabled="true"
android:exported="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<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/voice_trigger"/>
</service>
</application>
</manifest>
RES / XML / voice_trigger.xml:
<?xml version="1.0" encoding="utf-8"?>
<trigger keyword="@string/custom_keyword" />
RES /值/ strings.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Low Freq Demo</string>
<string name="heart_rate">Heart Rate</string>
<string name="custom_keyword">start my awesome app</string>
</resources>
以下是voice command documentation的链接,它仍提供有关使用自定义语音命令的说明。而且,从我的测试来看,他们仍然可以工作。
答案 1 :(得分:-3)
自从几个版本之前,自定义语音命令需要谷歌的批准。您可以从玻璃开发者网站发送该批准请求。
审核this。