Files

79 lines
3.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!--
Requirements verified against Meta's docs (2026-09-28):
documentation/native/android/mobile-openxr.md and resources/publish-mobile-manifest.md
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.galaxy.quest"
android:versionCode="9"
android:versionName="0.1.8"
android:installLocation="auto">
<uses-sdk android:minSdkVersion="32" android:targetSdkVersion="34" />
<uses-feature android:glEsVersion="0x00030002" android:required="true" />
<uses-feature android:name="android.hardware.vr.headtracking" android:required="true" android:version="1" />
<!-- Declared (not required) so the app can launch while controllers are
asleep; see documentation/native/android/mobile-hand-tracking.md -->
<uses-permission android:name="com.oculus.permission.HAND_TRACKING" />
<uses-feature android:name="oculus.software.handtracking" android:required="false" />
<!-- The passthrough setting (the room around the giant screen): the
runtime offers XR_FB_passthrough only to apps that declare this; see
documentation/native/android/mobile-passthrough.md (2026-10-02).
Not required: the game plays without it. -->
<uses-feature android:name="com.oculus.feature.PASSTHROUGH" android:required="false" />
<!-- The setup screen can use game files anywhere in the headset's storage
once the player allows it (Android's all files access). -->
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<!-- Khronos OpenXR loader (from openxr_loader_for_android 1.1.63) -->
<uses-permission android:name="org.khronos.openxr.permission.OPENXR" />
<uses-permission android:name="org.khronos.openxr.permission.OPENXR_SYSTEM" />
<queries>
<provider android:authorities="org.khronos.openxr.runtime_broker;org.khronos.openxr.system_runtime_broker" />
<intent>
<action android:name="org.khronos.openxr.OpenXRRuntimeService" />
</intent>
<intent>
<action android:name="org.khronos.openxr.OpenXRApiLayerService" />
</intent>
</queries>
<!-- debuggable + extractNativeLibs are required: Android only runs
lib/arm64-v8a/wrap.sh for debuggable apps, and the game needs it to
reserve its 32-bit address window before ART starts (reserve.c). -->
<!-- The icon and banner (res/) are the app's picture in the headset's
library. -->
<application
android:label="GalaxyQuest"
android:icon="@mipmap/ic_launcher"
android:banner="@drawable/banner"
android:hasCode="false"
android:debuggable="true"
android:extractNativeLibs="true"
android:allowBackup="false">
<meta-data android:name="com.oculus.supportedDevices" android:value="quest3|quest3s" />
<activity
android:name="android.app.NativeActivity"
android:exported="true"
android:excludeFromRecents="true"
android:launchMode="singleTask"
android:screenOrientation="landscape"
android:resizeableActivity="false"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
android:configChanges="density|keyboard|keyboardHidden|navigation|orientation|screenLayout|screenSize|uiMode">
<meta-data android:name="android.app.lib_name" android:value="main" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.oculus.intent.category.VR" />
<category android:name="org.khronos.openxr.intent.category.IMMERSIVE_HMD" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>