如何以编程方式为Google Glass GDK创建子菜单?

时间:2015-02-10 21:09:12

标签: java android google-glass submenu voice-recognition

如何在代码中动态创建Google Glass的子菜单?我想选择具有语音命令的用户,例如“选择用户” - > “奔”。用户数据是从DB加载的,因此无法使用XML菜单。 此示例适用于使用滑动手势进行导航:

@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:
        ...

非常感谢任何解决方案!

1 个答案:

答案 0 :(得分:0)

如果我在onCreatePanelMenu()中添加类似的代码,这样可以正常工作。由于您使用的是unlisted voice commands,您是否在清单中包含以下权限?

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