Gear VR 框架覆盖后退按钮功能
Gear VR Framework Override Back Button Functionality
我们正在使用 GVRf 开发 Gear VR 应用程序。应用程序中有两个 GVRScenes,我们希望它是这样的,如果用户在场景 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场景短按可以,长按显示oculus设置。问题是,如果我们从场景 B 返回并从设置返回,它会切换到场景 A,如果我们从场景 A 执行相同操作,应用程序将重新启动。
实现这个的正确方法是什么?提前致谢。
我们找到了解决此问题的方法。
首先,修改GVRActivity
的mPaused
为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);
}
希望这可以帮助其他人,如果有人有更好的解决方案,请随时post。
我们正在使用 GVRf 开发 Gear VR 应用程序。应用程序中有两个 GVRScenes,我们希望它是这样的,如果用户在场景 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场景短按可以,长按显示oculus设置。问题是,如果我们从场景 B 返回并从设置返回,它会切换到场景 A,如果我们从场景 A 执行相同操作,应用程序将重新启动。
实现这个的正确方法是什么?提前致谢。
我们找到了解决此问题的方法。
首先,修改GVRActivity
的mPaused
为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);
}
希望这可以帮助其他人,如果有人有更好的解决方案,请随时post。