Daydream/Cardboard VR correct way to exit the application

Hello everyone.

Our VR application was designed to support both Cardboard and Daydream platforms (checking both in native VR supported list in player settings).

We are struggling with getting rejected to be published for the following reason by the Daydream reviewers:

When the user removes the phone from their viewer, both the close button (upper left corner) and the back button in the system bar should exit the VR app to the 2D home screen. The close button must also be visible in your app. For more information, please see the Daydream App Quality Requirements 1.

Our application uses exactly the same code and scene setup as provided in the GVRDemo example scene in GoogleVR SDK for Unity 1.40. Need to mention, that the issue reproduces even if we build their example in an empty Daydream/Cardboard project. So we got really confused about this one.

We asked for an appeal. After the appealing procedure we received the following feedback:

I understand your app was recently not approved for Android VR and you were looking for a little clarity as to why. <…> when I select the back button I should be taken to Daydreams home page, and when I click the close button I should be taken our of Daydream completely.<…>

So, the reviewer basically just contradicted to the requirement text, describing the different behaviour for the “back button”. We tried the both variants and still got rejected. Google support also seems to reject any kind of technical questions, just sending to RTFM their Requirements and Android documentation. What a sweet guys working there…

According to the Google reqs, the Daydream-only application should always exit to 2D when using the touchscreen X button or system back button. And the Cardboard-only application seems fine to exit to the previous activity.

Here is my version (we’re still not sure) of what actually happens to their disliking: when user launches the application from Daydream VR homescreen and exits it via touchscreen (assuming that he took off the headset), he should be taken to the system 2D launcher. But our application seems to launch the previous activity (which is Daydream VR homescreen).

So, everything we basically have in Unity is Application.Quit method and nearly no control about where the application should quit to. We assume that everything is automatized and should work fine. So, why it isn’t?

We searched for similar issues and found that this one is quite frequent, yet unsolved. So, the thing we’ve tried so far:

      if (Input.GetKey(KeyCode.Escape))
          UnityEngine.VR.VRSettings.enabled = false;

in some Update(), according to the this issue reply. Didn’t work for us.

So, has someone solved this issue? Are we still getting/doing something wrong? Or is that’s how it currently is with Unity Daydream/Cardboard case?

Any help regarding this question would be really appreciated.

Thank you.

We made a Daydream-only version for another review iteration. Also updated the Unity to 5.6.0f3 (was 5.6.0f1 before).
Got rejected for the same reason from the Daydream.

Guys, did anyone actually make it to the Daydream with Unity platform? Seems like we are clearly doing something wrong.

Got reply from the Unity developer team about this one.

This is a known issue that has been been fixed in Unity versions >=
5.6, see:

VR: Fix daydream back button handling to deal with app store
submission rejection (893219)

Can you upgrade to this version?

Best Regards,

Developer Relations Engineer
Unity Support

So yeah, seems like a bug in Unity itself. I feel stupid a little since I’ve actually checked the Unity release notes but didn’t notice this line.
The only problem is - we are using 5.6.0f3 and the issue still persists.

Updated to 5.6.1 and GoogleVR SDK for Unity 1.50.
The issue seems to be resolved, the application built for either Daydream or Cardboard always exits to 2D android system launcher no matter where it was launched from.