2014-05-15 33 views
1

我已經遵循了官方文檔的確切步驟,但我仍然無法讓我的應用程序開始使用自定義語音命令。遵循的步驟是:玻璃XE17.1 - 自定義語音命令壞了?

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> 

不過,我不能夠使用語音命令來啓動應用程序。如果我更改爲預定義的語音命令之一,則應用程序將顯示在時間線上,並且可以使用語音命令啓動它。我錯過了什麼嗎?

+1

這一切都很好。您確定您的語音定義XML文件是否正確命名爲「voice_trigger_start.xml」? – LongZheng

回答

-3

自定義語音命令需要,因爲幾個版本之前,從谷歌aproval。您可以從玻璃開發商網站發送有關該aproval的請求。

評論this

+0

謝謝,我認爲在後X16版本創建自己的語音命令仍然可以用於開發目的 – jackusz

+0

@jackusz但是你的標題說版本:XE17.1,所以這是更新的。 – Max

+0

註冊語音命令需要Google批准。自定義命令應該仍然可以在開發中使用,就像第3點提到的原始海報一樣。你提供的鏈接也是這樣說的,就像Glass員工的這個問題/解決方案一樣:http://stackoverflow.com/questions/23097828/why-是,我的語音命令缺失,來自該行玻璃菜單功能於xe16。我不認爲這是一個正確的解決方案。 – Prisoner

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,它仍然提供有關usi的說明ng自定義語音命令。而且,從我的測試中,他們仍然在努力。