[Feature Request] Edit in Play Mode for Oculus Quest in Unity
I've been building an application for Go until recently, but after trying the Quest am seriously considering changing my platform because of the 6DoF. My Go development process so far has been like this: I use a Rift hooked up to my PC to do most of my Unity development (because of the perk of editing in play mode), then build to the Quest and make sure my build is bug-free before pushing it to my main branch. What I'm wondering is if we'll ever be able to use the Quest hooked directly up to Unity instead of needing to use the Rift for that purpose. Do other people want this feature?9.9KViews16likes35CommentsGetting to Android 32 with Unreal 4.27.2
Hi all, Quick summary here of what we needed to do to get our app(s) updated to API 32 - with Unreal 4.27.2 A bunch of this info seems spread out in other posts and I though collecting it in one spot might save others some pain Updating to API 32: - using Android Studio to configure the SDK to api 32 - just SDK Platform 32 and Sources for 32 are needed (we still have 29 installed) - Tools stay at 29 - we have 29.0.2 and 29.0.3 installed - Use the editor to set your android API to 32 Now problems we had with 32.. -Sideloads of builds installs didn't work, -Dev builds couldn't save logs -We couldn't launch one app from another Sideload fixes require changing /Engine/Source/Programs/AutomationTool/Android/AndroidPlatform.Automation.cs Near the top.. add 'Android' infront of obb --> private const string TargetAndroidLocation = "Android/obb/"; Then in GenerateInstallBatchFile, around line 950 there are to spots where "$STORAGE/Android/" needs to be just "$STORAGE/" Also in that same method near the top.. make this always true.. bool bNeedGrantStoragePermission = true; //bRequireRuntimeStoragePermission && !bIsDistribution; To get logs and general functioning working: Some tags need to be added to DefaultEngine.ini, (..some of the following may not apply to all apps..) [/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] bUseExternalFilesDir=true +ExtraManifestNodeTags=xmlns:tools="http://schemas.android.com/tools" +ExtraApplicationNodeTags=tools:replace="android:name" (the above is needed if you use Vivox later releases) +ExtraApplicationNodeTags=android:allowBackup='false' ExtraApplicationSettings= +ExtraActivityNodeTags=android:exported="true" ExtraActivitySettings= +ExtraPermissions=android.permission.INTERNET +ExtraPermissions="com.qti.permission.PROFILER " +ExtraPermissions=android.permission.WRITE_EXTERNAL_STORAGE +ExtraPermissions=android.permission.READ_EXTERNAL_STORAGE +ExtraPermissions=android.permission.WRITE_INTERNAL_STORAGE +ExtraPermissions=android.permission.READ_INTERNAL_STORAGE +ExtraPermissions=android.permission.READ_MEDIA_IMAGES +ExtraPermissions=android.permission.READ_MEDIA_VIDEO +ExtraPermissions=android.permission.READ_MEDIA_AUDIO +ExtraPermissions=android.permission.ACCESS_MEDIA_LOCATION +ExtraPermissions=android.permission.MANAGE_EXTERNAL_STORAGE bAndroidVoiceEnabled=False Also to get the logs saving on the device, we could not see how to grant permissions to save them where it usually wants to. I think that is truly locked off, but instead change the destination to use "Downloads" instead of UE4Game as the root.. In AndroidPlatformFile.cpp //#define FILEBASE_DIRECTORY "/UE4Game/" #define FILEBASE_DIRECTORY "/Download/" Our apps use a central launcher so to start those packages you must be able to get visibility of them, (new in 30, I think) so some additions to the AndroidManifest.xml are needed -- this can be done in UEDeployAndroid.cs -- there is a section that checks for API >= 30 -- and it creates a "query" section.. to this we added the following (I've included the tag to end the <queries> for ref) Text.AppendLine("\t\t<intent>"); Text.AppendLine("\t\t\t<action android:name=\"android.intent.action.MAIN\" />"); Text.AppendLine("\t\t\t<category android:name=\"android.intent.category.INFO\" />"); Text.AppendLine("\t\t\t<category android:name=\"com.oculus.intent.category.VR\" />"); Text.AppendLine("\t\t</intent>"); Text.AppendLine("\t</queries>"); This lets our app discover and launch other apps. Hope this helps some one else! DR -6.8KViews9likes13CommentsScoped Storage and VR
Ok, So..... I need to use Shared Storage to access folders that the users wants. I know it works, since flat apps like Amaze file manager can do the entire flow, but when I try from my VR app written in Unity, it fails to receive the request. What I have done Made a Jar plugin Added in a Activity to receive the requests From c# call into Java Start a new activity to receive the result, this makes VR go blank From java generate the OPEN_TREE... Intent and pass in a URI The Activity never receives the result after the popup is presentedSolved6.2KViews5likes9CommentsMemory Error when opening the overlay menu
While monitoring the Android logs, and running my Unity Quest game, and pressing the Oculus button to open the overlay menu, I get this wierd memory error: error getting shared memory region, memory type: Controller, failed with Status(-1, EX_SECURITY): 'requested shared memory When this happens, the game stops receiving controller and headset inputs, so the entire screen freezes that is incredible jarring. Any idea how to solve this? I guess it has something to do with the Focus Aware, and how the Input System works, as it only receives input while being active? I'm using Unity 2021.2.7 with OpenXR Plugin v1.3.0 and the "New" Input System.3.3KViews4likes4CommentsHow to start Eye Tracking Calibration from an Application or ADB
Is it possible to start the Quest Pro eye tracking calibration flow (the one in Settings -> Movement -> Eye Tracking) in either of these ways?: Within an application (whether it is an OpenXR call, android intent, or Unity plugin) Through ADB (intent, executable; can use root permissions) If this is not possible, then I'd like to make this a feature request, as it would greatly improve our user experience 🙂1.7KViews4likes2CommentsRequest for Enhanced Audio Routing Controls with External Microphones on Meta Quest
Hello Meta Team, I’m reaching out to request improvements in audio routing control for the Meta Quest, especially when using external USB-C microphones. Currently, the Quest OS automatically routes both audio input and output through the USB-C port when an external microphone is connected. This setup unfortunately limits flexibility, as audio playback through the device’s internal speakers is disabled, which contrasts with the more granular audio routing available on many Android smartphones. Use Case and Rationale: This limitation impacts a wide range of VR use cases, such as: Recording and Streaming: Many creators and developers require the ability to record or stream with an external microphone while still using the Quest’s built-in speakers for monitoring or providing immersive soundscapes. Accessibility and Communication: Granular audio routing control could greatly benefit users with specific accessibility needs or those using VR for social applications, where communicating through an external microphone and hearing output via speakers would enhance the experience. Application Flexibility: Several VR and AR applications rely on custom audio setups that would benefit from per-device audio control, similar to standard Android settings where users can select preferred input and output sources individually. Feature Suggestions: To enhance audio routing control, I’d like to suggest the following features: Option to Separate Input/Output Routing: Allow users to select audio input (e.g., an external mic) and output (e.g., internal speakers) independently, akin to Android’s audio settings. Persistent Device Preference: Provide a setting to enable/disable automatic audio routing to USB-C devices upon connection, similar to the “Disable USB audio routing” option on Android. In-App Routing Controls: Ideally, allow apps to query and set audio routing preferences directly, enabling custom audio experiences within VR applications. I believe that these enhancements would not only improve accessibility but also expand the creative and practical applications of the Quest headset. This type of control is becoming increasingly essential as more users integrate VR into production, education, and social environments. Thank you for considering this request. If there’s any way to provide feedback or be part of testing new audio features, I’d be happy to participate!369Views3likes0CommentsIs there a way to invoke the keyboard overlay in a VR app not made with Unity or Unreal?
In the documentation, there seems to be a way to open the keyboard overlay for Unreal and Unity development: https://developer.oculus.com/documentation/unreal/unreal-keyboard-overlays/ https://developer.oculus.com/documentation/unity/unity-keyboard-overlay/ However there is no indication on how to do the same with a third party engine or app written without using those two solutions, I couldn't find anything in the Mobile SDK docs: https://developer.oculus.com/documentation/native/android/mobile-intro/ Is this functionality available? Thanks in advance for your help!1.3KViews2likes0CommentsPreferred audio rate-- 44100 or 48000?
I have a choice, when synthesizing the audio for my app, of doing so at 44100 or 48000 hz. Is one "better" or more natural for the Quest? That is, does the Quest have some "true" resolution that it is resampling to, such that in fact if I submit (for example) a 44.1khz sample stream to OpenSL, it will be internally resampled to (hypothetically) 48khz before hitting the DACs? Or vice versa? Will Oculus Audio work better with one sample rate vs the other? The Oculus Audio reference guide says "44100 and 48000 are recommended for best quality". Is this a promise that the Oculus devices are equally capable of playing either a 44.1khz or 48khz sample stream at native resolution? (If it helps, I am developing against the Native/C++ API.)8.7KViews2likes7CommentsError when Uploading APK - Oculus SDK not found or older than 1.0
When i try to upload my game to app lab trough MQDH i get this error "Oculus SDK not found or older than 1.0" I'm using Unreal Engine 5.2 and the OpenXR and MetaXR plugins i have the correct version of Android SDK Command-line Tools, and my NDK_ROOT and ANDROID_SDK_HOME env variables are referencing the right directory628Views2likes0CommentsUploading an Android SDK 34 build
Hello, Due to the other SDKs we currently use, we can't go down to target version 32. The APK build I get works great with Quest 2 if I install it via the developer hub, but there's no way to push it to any release channel. Is there any way to force a build with target SDK version 34 to a release channel?1.7KViews2likes2Comments