【问题标题】:Gear VR Framework Override Back Button FunctionalityGear VR 框架覆盖后退按钮功能
【发布时间】:2016-07-21 03:00:10
【问题描述】:

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

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

@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 执行相同操作,则应用程序会重新启动。

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

【问题讨论】:

    标签: android back-button virtual-reality oculus gear-vr


    【解决方案1】:

    我们找到了解决此问题的方法。

    首先,将GVRActivitymPaused修改为protected

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-24
      相关资源
      最近更新 更多