我已经成功地填充了玻璃器皿沉浸式的上下文语音菜单,但是我希望能够在onPreparePanel()或onCreatePanelMenu()中的初始设置之后更改菜单,如下所述:Programmatically populated contextual "ok glass" menu。
理想情况下,其中一个回调将在收到'ok,玻璃‘语音命令后调用,但据我所知,没有一个是。结果,您将继续使用语音命令菜单的版本,因为这是您第一次进入该活动。
到目前为止,唯一接近的攻击是当我从设备上取出GlassVoice.apk并设置一个手动VoiceListener (如这里所讨论的:Glass voice command nearest match from given list)。当检测到语音命令调用onVoiceCommand时,我尝试通过调用invalidateOptionsMenu() (无效果)或invalidateOptionsMenu来强制菜单刷新。第二个看起来像是试图拉出菜单,然后马上又隐藏起来。
如何动态地更改活动生命周期中的上下文语音菜单?
发布于 2014-07-16 08:16:37
实际上,我刚刚编写了一个示例应用程序,这个程序对我来说很好。
确保使用onCreatePanelMenu()
创建语音菜单并检查
if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS ||
featureId == Window.FEATURE_OPTIONS_PANEL) ...
若要为触摸菜单和语音菜单充气菜单,请执行以下操作。
要刷新这两个选项,在onMenuItemSelected()
中,请确保调用invalidateOptionsMenu()
刷新触摸菜单,调用getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS)
刷新语音菜单。我只是在第一个菜单项选择上翻转了一个布尔值,用来确定旧菜单还是新菜单应该膨胀。
你用的是什么版本的眼镜?
https://stackoverflow.com/questions/24762428
复制相似问题