Develop

Android Manifest Settings

Updated: Sep 1, 2026
Configure your Android VR app’s manifest with the necessary VR settings for development as shown in the following manifest segment.
Note: These manifest requirements are intended for development and differ from our submission requirements. Before submitting your application, please be sure to follow the manifest requirements described at Application Manifests for Release Builds in the Distribute section.
<manifest
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:metavr="http://schemas.meta.com/metavr-sdk"
     package="<packagename>"
     android:versionCode="1"
     android:versionName="1.0"
     android:installLocation="auto">
<uses-sdk
     android:minSdkVersion="29"
     android:targetSdkVersion="32" />
<metavr:uses-metavr-sdk
        metavr:minSdkVersion="201"
        metavr:targetSdkVersion="207" />
<application>
<meta-data
     android:name="com.oculus.supportedDevices"
     android:value="quest2|questpro|quest3|quest3s"/>
<activity android:screenOrientation="landscape"
     android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
     android:configChanges="density|keyboard|keyboardHidden|navigation|orientation|screenLayout|screenSize|uiMode"
     android:launchMode="singleTask"
     android:resizeableActivity="false">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="com.oculus.intent.category.VR" />
    </intent-filter>
</activity>
</application>
</manifest>
  • Replace <packagename> with your actual package name, such as “com.mycompany.myapplication”.
  • The Android theme should be set to the solid black theme for comfort during application transitioning: Theme.Black.NoTitleBar.Fullscreen
  • The required screen orientation is landscape: android:screenOrientation="landscape".
  • It is recommended that your configChanges are as follows: android:configChanges="density|keyboard|keyboardHidden|navigation|orientation|screenLayout|screenSize|uiMode".
  • Do not add the noHistory attribute to your manifest.
  • <uses-feature android:name="android.hardware.vr.headtracking" android:required="true" android:version="1" /> is required for v2 signing, which is required for store review for Meta Quest apps.
  • On the uses-sdk element, minSdkVersion and targetSdkVersion must be set appropriately in the build.gradle file. Increasing minSdkVersion can cause your application to no longer run on older-generation headsets. In Android Studio, these values can be set from the Properties and Default Config sections at File > Project Structure > Modules.
  • On the uses-metavr-sdk element, minSdkVersion and targetSdkVersion must be set appropriately. See Meta VR OS SDK Versioning for details.
For Meta Quest 2, Meta Quest Pro, Meta Quest 3, and Meta Quest 3S, set minSdkVersion and targetSdkVersion to 32. You can also set the optional compileSdkVersion to 32 to receive up-to-date compiler error messages.
Applications submission requirements may require additional adjustments to the manifest. Please refer to Application Manifests for Release Versions in our Publishing Guide.

Compatibility Mode

Future VR devices might not be compatible with the capabilities your app uses. If the device model of the headset running your app does not appear in the com.oculus.supportedDevices section of your manifest, the device automatically switches to compatibility mode while running your app. When this occurs, your Meta VR device attempts to maximize compatibility with your app, and runtime reports the headset as a previous generation model.
See Compatibility mode for more details about this behavior, and for recommended APIs for determining the model of device your app is currently running on.
When you create apps for Meta Quest devices, check capabilities before using device-specific features. For example, check for eye-tracking support instead of assuming that every device supports it.

Add Supported Devices to the Manifest

The canonical com.oculus.supportedDevices identifiers are:
Meta Quest devicesupportedDevices identifier
Meta Quest 2
quest2
Meta Quest Pro
questpro
Meta Quest 3
quest3
Meta Quest 3S
quest3s
Separate multiple identifiers with a pipe (|).
To declare support for all current Meta Quest devices, add this element to the application node in AndroidManifest.xml:
<meta-data
    android:name="com.oculus.supportedDevices"
    android:value="quest2|questpro|quest3|quest3s" />
See Compatibility mode for more details about specifying supported devices.

Check Capabilities Where Possible

Remember that although checking the device type has valid use cases, you should always use capability-based checking where you can.
For example, checking through OpenXR if the device supports eye tracking will provide better support then checking if the device is a Meta Quest Pro.