2016-07-19 99 views
0

我們正在開發使用GVRf的Gear VR應用程序。應用程序中有兩個GVRScenes,我們希望如果用戶在場景B中短按回按鈕,它將返回到場景A,並且如果用戶短按了場景A中的按鈕,它將退出應用程序。此外,長時間按下後退按鈕應顯示Oculus設置菜單,然後按回來應用程序(根據Oculus商店要求)。Gear VR框架覆蓋後退按鈕功能

由於GVRActivity.onBackPressed()不是從框架調用,我們試圖重寫onKeyUpGVRActivity:從場景B

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if (KeyEvent.KEYCODE_BACK == keyCode) { 
     if (mScript.onBackPressed()) {//mScript.onBackPressed() handles change scene logic 
             //and returns true if we are in scene B, and returns 
             //false if we are in scene A 
      super.onBackPressed(); 
     } 
     return true; 
    } 
    return super.onKeyUp(keyCode, event); 
} 

眼下短按確定,長按是出魔環的設置。問題是,如果我們從場景B按下並從設置中按回,它將切換到場景A,並且如果我們從場景A執行相同操作,則應用程序將重新啓動。

什麼是正確的方式來實現呢?提前致謝。

回答

0

我們爲此找到了解決方法。

首先,修改GVRActivitymPausedprotected

protected boolean mPaused = true; 

然後我們加入我們Activity推翻了onKeyUp()

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    Log.d(TAG, "onKeyUp: "+keyCode); 
    if(!mPaused && keyCode==KeyEvent.KEYCODE_BACK){ 
     if(!mScript.onBackPressed()) 
      return true; 
    } 
    return super.onKeyUp(keyCode, event); 
} 

希望這可以幫助別人,如果任何人有一個更好的解決方案,隨意張貼。