2014-07-24 14 views
0

我想防止用户在我的应用程序中使用Google Glass上的外部照相机按钮拍照。如何处理在Google Glass应用程序中打开选项菜单时发生的“keyDown”事件

我目前正在通过重写“onKeyDown”方法来捕捉我的主Activity中的任何摄像头按钮事件。但是,我发现如果在用户需要选择菜单项时(例如,调用方法“openOptionsMenu”),在我的应用程序中打开Goog​​le Glass选项菜单时,keyEvents与我的活动分开处理,用户最终可能不小心拍照。

有没有办法在选项面板中捕获keyDown事件?

有没有办法获得持有选项面板的“视图”,并添加一个onKey监听器?我试图通过“onCreatePanelView”来获得这个视图,但该方法只返回n​​ull。

另一种方法是我重写onCreatePanelView并创建我自己的自定义面板视图,但我希望有一个解决方案可以避免这种情况,并允许我将onKeyDown侦听器添加到默认选项面板。

回答

0

您可以尝试使用此代码段,同时在菜单:

public boolean onKeyDown(int i, KeyEvent keyevent) { 
     if (i == 27) { 
      keyevent.startTracking(); 
      return true; 
     } 
     else { 
      return super.onKeyDown(i, keyevent); 
     } 
    } 
+0

感谢您的建议。我在主要活动中覆盖了onKeyDown,并在选项菜单之外捕捉相机按钮。但是,打开选项菜单时,窗口会创建一个面板视图,该视图似乎与当前活动无关。因此,当此面板视图打开时,不会调用onKeyDown。 – andrewl1030

相关问题