24 octubre 2025
Posted by Jan Kleinert, Android Developer Relations Engineer
Samsung Galaxy XR is here, powered by Android XR! This blog post is part of our Android XR Spotlight Week, where we provide resources—blog posts, videos, sample code, and more—all designed to help you learn, build, and prepare your apps for Android XR.

Today, we're focusing on one of the last steps in your development journey, ensuring these experiences successfully reach your users. Publishing correctly ensures your app is packaged efficiently, discovered by the right devices, and presented in the best possible light.
Here are 5 things you need to know about publishing and distributing your app for Android XR on Google Play.
One of the most important steps before publishing is ensuring your app delivers a safe, comfortable, and performant user experience.
Following the Android XR App Quality Guidelines helps ensure that your app provides users with a great experience on devices like the Galaxy XR.
These guidelines build upon the large screen app quality guidelines, and focus on critical XR-specific criteria including:
Safety and comfort: This is paramount. These guidelines help you avoid causing motion sickness by setting standards for camera movement and frame rates, and by limiting visual elements like strobing.
Performance: Your app must hit performance metrics, such as target frame rates, to prevent lag and ensure a fluid, comfortable experience.
Interaction: The guidelines specify recommended minimum sizes for interactive targets (e.g., 48dp minimum, 56dp recommended) to work well with eye-tracking and hand-tracking inputs.
The AndroidManifest.xml file describes important information about your app. The Android build tools, Android system, and Google Play use this information to know what kind of experience you've built and which hardware features it requires. Proper configuration is vital for correct device targeting and app launch.
In your app manifest, include android.software.xr.api.spatial or android.software.xr.api.openxr to indicate whether you're building with the Jetpack XR SDK or building with OpenXR or Unity.
SDK used | Manifest declaration |
Jetpack XR SDK | |
OpenXR or Unity |
If your app is built using OpenXR or Unity, you must set the android:required attribute to true. For apps built with the Jetpack XR SDK, set android:required attribute to true if your app is published to the Android XR dedicated release track and set android:required attribute to false if your app is published to the mobile release track.
Use the android.window.PROPERTY_XR_ACTIVITY_START_MODE property on your main activity to define the default user environment:
Start mode | Purpose | SDK |
XR_ACTIVITY_START_MODE_HOME_SPACE | Launches your app in Home Space, the shared multitasking environment. | Jetpack XR SDK |
XR_ACTIVITY_START_MODE_FULL_SPACE_MANAGED | Launches in Full Space, a full-immersion, single-app environment. | Jetpack XR SDK |
XR_ACTIVITY_START_MODE_FULL_SPACE_UNMANAGED | Launches in Full Space, a full-immersion, single-app environment. Note that apps built with OpenXR or Unity always run in Full Space. | OpenXR or Unity |
Avoid setting optional XR features (like hand tracking or controllers) to android:required="true" unless they are truly required for your app. If a device doesn't support a required feature, Google Play will hide your app from that device. If you have features set as required but your app could operate without them, then you could unnecessarily limit your audience.
Instead, check for advanced features dynamically at runtime using the PackageManager class with hasSystemFeature():
Kotlin
val hasHandTracking = packageManager.hasSystemFeature("android.hardware.xr.input.hand_tracking")
if (hasHandTracking) {
// Enable high-fidelity hand tracking features
} else {
// Provide a fallback experience
}
This ensures your app is broadly compatible and leverages advanced features when they're available.
Immersive apps and games often contain large assets that might exceed the standard size limits. Use Play Asset Delivery (PAD) to manage large, high-fidelity assets. PAD offers flexible delivery modes: install-time, fast follow, and on demand for progressive download of content. Apps that are built for Android XR are allowed to deliver additional asset packs: instead of a cumulative total of 4 GB for asset packs delivered on demand or fast follow, these apps are afforded a higher cumulative total of 30 GB.
For developers building with Unity, use Unity Addressables along with Play Asset Delivery to manage asset packs.
To capture the attention of users browsing the Play Store on their XR headsets, you can provide an immersive preview of your app using a spatial video asset. This must be a 180°, 360°, or stereoscopic video. On Android XR devices, the Play Store will automatically display this as an immersive 3D preview, allowing users to experience the depth and scale of your content before they install the app.
Google Play provides two pathways for publishing your Android XR app, both using the same Play Console account:
If you are adding spatial XR features to an existing mobile app, you can often bundle the XR features or content into your existing Android App Bundle (AAB).
This approach is ideal if your app maintains most of its core functionality across both mobile and XR devices, and you can continue publishing the same AAB to the mobile track. Review this guidance to be sure you are properly configuring your app's manifest file to support this use case.
If you are building a brand-new app for XR or if the XR version is functionally too different for a single AAB, you should publish to the Android XR dedicated release track.
Apps published to the Android XR dedicated release track are only visible to Android XR devices that support the android.software.xr.api.spatial feature or the android.software.xr.api.openxr feature, giving you control over distribution.
By following this guidance, you can help ensure your innovative Android XR apps provide a quality user experience, are packaged efficiently, are delivered smoothly using PAD, and are targeted to the devices that can run them. Happy publishing!