2013-11-21 6 views
10

GDKを使用してGoogle Glassでアプリを起動するときに音声トリガーをネストする方法はありますか?たとえば、「ok、glass」 - >「パワーレベルは何ですか?」というだけではありません。私は、アプリにオプションを提示したいと思います。例えば、 "ok、glass" - > "パワーレベルは?" →「9,000以上」または「9000未満」。どんな助けも素晴らしいだろう!GDKでアプリを起動するときに複数の音声トリガーをネストする方法

答えて

13

あなたはインテントフィルタをトリガーと同じ声を持っているグラスにインストールされている複数の活動/サービスを持っている場合は、その名前のすべて(のandroid:label属性に基づいて<activity>AndroidManifest.xml<service>タグ)曖昧さ回避「サブメニュー」に表示されますあなたがその声のトリガーを話すとき。例えば

res/xml/play_a_game_trigger.xmlがを「ゲームをプレイ」文字列ための音声トリガーを表していると仮定):

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

あなた

ok glass → play a game → Tennis 
         Bowling 

のように見える音声メニューの流れを与えるだろうただし、このメニューには、同じ音声トリガーも使用するその他の APKのアクティビティやサービスも含まれます。

詳細については、GDKのドキュメントのVoice Inputページを参照してください。

+0

、そんなに男はありがとう! – Sevros

+1

'android:name =" Bowling "' be 'android:label = "Bowling" 'ではありませんか?私はそれが活動名に落ちると確信していますが、ラベルは適切な属性でなければなりません。 – JRomero

+0

おっと、はい、あなたは正しいです、それをキャッチするために感謝します。私は答えを更新しました。 –

3

これを行うための適切な方法がこのオーディオ音声の入力を待つを促す

<trigger keyword="@string/start_app" > 

    <input prompt="@string/promt_text" /> 

</trigger> 

トリガー内部入力タグを使用しています。

次に、あなたの活動にあなたがこのテキストをキャプチャすることができます。これは、働いていた

ArrayList<String> text = getIntent().getExtras().getStringArrayList(RecognizerIntent.EXTRA_RESULTS); 
関連する問題