The application should not experience extended periods of framerate below the requested refresh rate of the display. Exceptions include when there’s a black screen or loading scenes.
# The app must run for 45 minutes with typical usage without entering thermal throttling Power Save mode.
In Unity, you should see OnApplicationPause(true) called both when the HMD sleeps after dismount, as well as when the display is turned off from the power button.
This will be matched by a corresponding OnApplicationPause(false) when the headset is remounted, or the power button is hit again to turn on the display.
Things that cause OnApplicationPause(true) to occur:
For example, if your app requires a login, you must provide instructions for the user to successfully create an account. These instructions must be discoverable in VR, but account creation could happen in 2D.
Game levels must not have broken logic that prevents progressing to the next level.
When a user removes their headset, the foreground app is paused, which means any downloads running in the app are also paused. In order for downloads to continue when a user removes their HMD, they must be done in the background. To meet this requirement, you can use Android DownloadManager(opens new window), or other similar utilities, to download in the background.
The review team will be paying especially close attention to the list of permissions that Google considers dangerous, which includes camera, location, microphone, reading and writing external storage, and others.
For more information about permissions, see https://developer.android.com/guide/topics/permissions/overview.html.
Look at permissions requested in the android manifest. From a command line, you can also run $ aapt dump badging and search the output for uses-permission.
Verify that all permissions are utilized by the application.
While using your app, hold your hands in front of your face and raise your headset slightly so you can compare your real-world hands and your virtual hands. Repeat this process with your hands at different angles and positions in order to observe and correct any disparities.
# Application should provide versions with Chinese localization texts integrated, and Chinese should be set as default language.
# Application should be playable in its entirety without the use of audio, or provide subtitle options for in-application dialogue and/or sound effects to communicate progress to the user. (Recommended)
# Text and in-app controls and elements necessary for app progression should be clearly legible. When possible, provide options for increased contrast and/or larger user interface (UI) elements. (Recommended)
# When possible, the application should provide clarity and direction to the user through a combination of visual, audio, and/or haptic feedback instead of relying on one form of feedback. (Recommended)
# Applications should provide an option to be played with one hand and/or controller. Ideally, the user can configure their controller options. (Recommended)
# Applications should enable people to edit their display settings such as brightness and contrast to accommodate their visual needs. (Recommended)
# Applications should either provide color blindness options, or use other techniques such as combining color and pattern for easy visual distinction. (Recommended)
# Applications should provide the user with the option to rotate their view without physically moving their head/neck. (Recommended)
# Applications should support multiple locomotion styles when possible. This includes, but is not limited to, teleportation, free locomotion, and snap turning. (Recommended)
# Applications that can be used in sitting or standing mode should provide a setting to enable users to perform all interactions and access information from a fixed position. (Recommended)