2014-09-23 62 views
0

我想知道如何在卡上列出所有可用的上下文命令,其中「Ok,glass」在頁腳處並準備好接受命令。 我的應用程序有超過10個上下文命令,用戶可能不記得所有的命令。如何列出卡上所有可用的上下文命令?

我在下面的代碼將只顯示「好玻璃」作爲頁腳和頁腳上方沒有任何內容。但是,命令列表將顯示在「Ok玻璃」命令之後。 我希望將清單和「OK玻璃」同時顯示。

請指教。

public class MenuActivity extends Activity { 


    @Override 
    protected void onCreate(Bundle bundle) { 
     super.onCreate(bundle); 

     // Requests a voice menu on this activity. As for any other 
     // window feature, be sure to request this before 
     // setContentView() is called 
     getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS);   
     setContentView(R.layout.start); 
    } 

    @Override 
    public boolean onCreatePanelMenu(int featureId, Menu menu) { 
     if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS|| 
       featureId == Window.FEATURE_OPTIONS_PANEL) { 
      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|| 
      featureId == Window.FEATURE_OPTIONS_PANEL) { 

      switch (item.getItemId()) { 
       case R.id.Atrig_menu_item: 
        // handle A trigger   
        break; 
       case R.id.Btrig_menu_item: 
        // handle B trigger 
        break; 
       case R.id.Ctrig_menu_item: 
        // handle C trigger 
        break; 
       case R.id.Dtrig_menu_item: 
        // handle D trigger 
        break; 
       case R.id.Etrig_menu_item: 
        // handle E trigger 
        this.finish();     
       default: 
        return true; 
      } 
      return true; 
     } 
     // Good practice to pass through to super if not handled 
     return super.onMenuItemSelected(featureId, item); 
    } 

}

回答

0

在XE 21,你不能改變的語境語音命令的行爲。

如果要顯示所有可用選項,在通過說「Ok Glass」激活Contextual Voice命令之前,必須創建一個佈局來顯示菜單R.menu.main的內容。

但即使您在R.menu.main中創建了一個包含所有項目的佈局,但當您在應用中顯示「Ok Glass」時,上下文語音命令將再次顯示您的菜單。

最好的做法是在主要佈局中顯示一些文字或信息,即R.layout.start,然後當用戶說「Ok glass」時讓Contextual Voice命令顯示菜單。

這裏向您展示如何構建一個簡單的佈局鏈接:Tutorial Linear Layout

+0

目前,該卡是空白帶「好吧,玻璃」僅頁腳。我現在正在考慮在「Ok,glass」頁腳上方顯示一些文字和圖片,而不是填充菜單,因爲在用戶說「Ok,glass」後會以某種方式顯示。我可以知道我怎麼用上面的代碼來做到這一點? – 2014-09-24 13:53:26

+0

確實最好讓Contextual語音命令顯示菜單,不需要自己做。我會更新我的答案並解釋如何填充你的觀點 – Pull 2014-09-24 15:29:13

相關問題