2015-02-10 51 views
0

如何在代碼中動態創建Google Glass的子菜單?我想選擇一個帶有語音命令的用戶,如「選擇用戶」 - >「本」。用戶數據是從數據庫中加載的,所以XML菜單是不可能的。 此示例爲導航與滑動手勢:如何以編程方式爲Google Glass GDK創建子菜單?

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    menu.clear(); 
    SubMenu sbm = menu.addSubMenu(Menu.NONE, 1, menu.NONE, "Select User"); 
    sbm.add(Menu.NONE, 2, menu.NONE, "Ben"); 
    sbm.add(Menu.NONE, 3, menu.NONE, "Ted"); 
    return super.onPrepareOptionsMenu(menu); 
} 

現在我想使用語音命令相同的:

@Override 
public boolean onPreparePanel(int featureId, View view, Menu menu) { 
    menu.clear(); 
    SubMenu sbm = menu.addSubMenu(Menu.NONE, 1, menu.NONE, "Select User"); 
    sbm.add(Menu.NONE, 2, menu.NONE, "Ben"); 
    sbm.add(Menu.NONE, 3, menu.NONE, "Ted"); 
    return super.onPreparePanel(featureId, view, menu); 
} 

但玻璃沒有識別語音命令。我希望任何人都知道一個解決方案,我怎樣才能得出結果?因爲以下列表不適用於此解決方案。

@Override 
public boolean onMenuItemSelected(int featureId, MenuItem item) { 
    if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS || featureId == Window.FEATURE_OPTIONS_PANEL) { 
     switch (item.getItemId()) { 
     case 1: 
     ... 

非常感謝您的任何解決方案!

回答

0

這工作正常,如果我把類似的代碼在onCreatePanelMenu()。由於您正在使用unlisted voice commands,您是否在清單中包含以下權限?

<uses-permission android:name="com.google.android.glass.permission.DEVELOPMENT"/>