2014-07-24 16 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

相關問題