禁用活动中的上下文语音命令

时间:2014-08-27 12:36:38

标签: android android-activity google-glass google-gdk

我正在调用此功能:

getWindow().requestFeature(WindowUtils.FEATURE_VOICE_COMMANDS);

应该很容易,但是在我的Activity中启动后,我无法找到隐藏/禁用此功能的方法。我想要启用/禁用“Ok Glass”功能的功能,然后我会在菜单中使用它。

这个GlassWare不是很完美,你可以在菜单底部显示或隐藏“Ok Glass”:Google Glass Chess

1 个答案:

答案 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)。