2015-02-10 52 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"/>