Мы разрабатываем приложение Gear VR с использованием GVRf. В приложении есть два GVRScenes, и мы хотим, чтобы, если пользователь коротко нажимает кнопку «Назад» в сцене B, он возвращается к сцене A, а если пользователь коротко нажимает кнопку «Назад» в сцене A, она выходит из приложения. Кроме того, длительное нажатие кнопки «Назад» должно отображать меню настроек Oculus, а также повторное нажатие, которое должно возобновить приложение (в соответствии с требованиями магазина Oculus).Функциональность кнопок обратной связи для редуктора VR
GVRActivity.onBackPressed()
Поскольку не вызывается из рамок, мы пытались переопределить onKeyUp
из 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, приложение перезагрузится.
Каков правильный способ реализации этого? Заранее спасибо.