0

我们正在使用 GVRf 开发一个 Gear VR 应用程序。应用中有两个 GVRScene,我们希望用户在场景 B 中短按返回按钮返回场景 A,如果用户在场景 A 中短按返回按钮则退出应用。此外,长按返回按钮应显示 Oculus 设置菜单,然后按返回按钮应恢复应用程序(根据 Oculus 商店要求)。

由于GVRActivity.onBackPressed()没有从框架调用,我们尝试覆盖onKeyUpfrom GVRActivity

@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 短按是可以的,长按显示眼设置。问题是,如果我们从场景 B 中按回并从设置中按回,它会切换到场景 A,如果我们从场景 A 执行相同操作,则应用程序会重新启动。

实现这一点的正确方法是什么?提前致谢。

4

1 回答 1

0

我们为此找到了解决方法。

首先,将GVRActivity's修改mPausedprotected.

    protected boolean mPaused = true;

然后我们onKeyUp()在我们的Activity:

@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);
}

希望这可以帮助其他人,如果有人有更好的解决方案,请随时发布。

于 2016-07-20T19:00:10.037 回答