2015-01-07 14 views
1

嗨,有是否可以使用語音命令進行導航而不是使用滑動手勢?

目前,我開發一個應用浸上提供屏幕和用戶文本可以swipe_right去另一個。

實際上,它適合於來自樣本浸入式模式charades(谷歌開發網站)。

我的目標是,我想使用語音命令,而不是SWIPE手勢。例如

;

  1. 用戶打開沉浸式演示,屏幕將顯示第一個TEXT。
  2. 用戶想使用語音「GO NEXT」去下一個文本
  3. 屏幕將顯示另一個文本。

考慮到這一點post

有沒有辦法做到這一點? 或任何建議?

+0

http://developer.android.com/reference/android/speech/SpeechRecognizer.html將此作爲服務在後臺運行..當ViewPager處於前臺時調用SpeechRecognizer。希望這有助於 –

+0

感謝您的建議,順便說一句,你能舉一個這個例子嗎? @VnyKumar –

+0

http://stackoverflow.com/questions/14940657/android-speech-recognition-as-a-service-on-android-4-1-4-2/14950616#14950616這應該是一個很好的起點 –

回答

1

在這裏,這是我的解決方案。希望這可能會幫助尋找的人。

我使用Contextual voice commands爲用戶提供'下一步','保存'和'退出'命令。你可以去谷歌開發網站this document看到這樣做的想法。

我有我的佈局活動來顯示一些TEXT,所以我把這個代碼結構。在我的佈局活動

//contextual voice command 
import com.google.android.glass.view.WindowUtils; 
import android.view.Menu; 
import android.view.MenuItem; 


@Override 
public boolean onCreatePanelMenu(int featureId, Menu menu) { 
    if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS) { 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
    // Pass through to super to setup touch menu. 
    return super.onCreatePanelMenu(featureId, menu); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onMenuItemSelected(int featureId, MenuItem item) { 
    if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS) { 
     switch (item.getItemId()) { 

      case R.id.save_menu_item: 
       Log.d("Contextual", "go save checks"); 
       break; 
      case R.id.next_menu_item: 
       Log.d("Contextual", "go next checks");      
       break; 
      case R.id.exit_menu_item: 
       Log.d("Contextual", "go exit checks");      
       break; 
      default: 
       return true; 
     } 

     return true; 
    } 
    return super.onMenuItemSelected(featureId, item); 
}                             

不要忘記此行getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS);申報您的onCreate();在你的setContentView()之前。

接下來的事情,我創建了'菜單文件夾'和main.xml其中提供我的項目選擇。像這樣

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:id="@+id/next_menu_item" 
    android:title="@string/next"> 

</item> 
<item 
    android:id="@+id/save_menu_item" 
    android:title="@string/save_this"> 
</item> 
<item 
    android:id="@+id/exit_menu_item" 
    android:title="@string/exit"> 
</item> 

和我strings.xml文件。

<resources> 
    <string name="next">next</string> 
    <string name="save_this">save</string> 
    <string name="exit">exit</string> 
</resources> 

,就把這行 <uses-permission android:name="com.google.android.glass.permission.DEVELOPMENT" />

AndroidMenifest.xml

它適用於我!

相關問題