Google Glass语音菜单更新

时间:2014-10-13 14:18:56

标签: android menu google-glass google-gdk

在我的应用中,我正在使用onCreatePanelMenu为语音识别充气菜单。当我给一个简单的菜单充气时,它工作正常,但我想要做的是根据用户的程序时刻给不同的菜单充气。

使用onCreateOptionsMenuinvalidateOptionsMenu()可以正常使用手势菜单,对语音菜单使用不一样。

我正在尝试的代码是:

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

conStateMenu在执行期间的某个不同点发生变化。同样,这可以在手势菜单中正常工作,但是对于无效的菜单,有没有办法(无效并加载新菜单)?

谢谢!

1 个答案:

答案 0 :(得分:0)

您正在寻找的方法是Window#invalidatePanelMenu(int)

getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS);

这将告诉框架该功能已失效,需要重新创建/准备。