我正在调用此功能:
getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS);
应该很容易,但是在我的Activity中启动后,我无法找到隐藏/禁用此功能的方法。我想要启用/禁用“Ok Glass”功能的功能,然后我会在菜单中使用它。
这个GlassWare不是很完美,你可以在菜单底部显示或隐藏“Ok Glass”:Google Glass Chess
答案 0 :(得分:2)
我认为onPreparePanel是你正在寻找的。每次显示时,都会在显示面板窗口之前调用它。对于GDK,这是在创建活动之后,当用户点击触摸板并且菜单出现时。
要禁用“Ok Glass”时返回false:
@Override
public boolean onPreparePanel(int featureId, View view, Menu menu) {
Log.v(TAG, "CityRideActivity#onPreparePanel");
if (featureId == WindowUtils.FEATURE_VOICE_COMMANDS) {
return false; // <-- disable "Ok Glass"
}
return super.onPreparePanel(featureId, view, menu);
}
我猜 Google Glass Chess 会在用户点按触控板时禁用语音菜单,但开发者会为其菜单使用自定义视图。
GDK doc有一个简短的解释,但很有帮助:
(可选)覆盖onPreparePanel(),检查是否启用了WindowUtils.FEATURE_VOICE_COMMANDS。如果启用,您可以在此处设置其他逻辑来设置菜单系统,例如根据某些条件添加和删除某些菜单项。您还可以根据某些条件切换上下文语音菜单(返回true)和关闭(返回false)。