Forum Discussion

oscar.m.2024's avatar
oscar.m.2024
Honored Guest
17 days ago

Unable to use Meta XR Simulator more than 3 minutes

Hi,

I’m trying to test the Meta XR Simulator in order to develop a VR experience in Unity. The Unity package requires the headset to remain connected to my PC so that I can test VR without wearing the headset, and so the controllers can be linked to the simulator (I’m not sure why they can’t be paired via Bluetooth like Switch Joy-Cons when developing a Switch game in Unity). The workflow is essentially the same as testing in Play Mode with the headset on — but why not I guess.

On the headset, the XrSimDataForwardingServer.apk is running, and I’ve covered the proximity sensor with black tape to prevent it from entering sleep mode. With this setup, I’m able to use the controllers for about 2–3 minutes, but then the headset still goes to sleep.

Because we are a school, we use a third-party MDM to manage all our headsets, so this device is in Shared Mode. As a result, I get the “Continue the session?” popup. Even when I press the button to continue, it simply loops back to the same popup indefinitely.

In our MDM, the headset is configured to sleep after one hour, but since the device detects no movement (even though I’m actively using the controllers in Play Mode with the Meta XR Simulator), it still enters sleep mode.

How can I resolve this in order to develop my VR experience more efficiently?

Thank you in advance for your help.

2 Replies

  • steve_40's avatar
    steve_40
    Expert Trustee

    Try increasing the time for Settings->Power->Display off

  • This is a fairly common issue when using Meta XR Simulator on a headset that is MDM-managed or running in Shared Mode. What’s happening is:

    The headset is detecting no HMD movement, only controller input
    In Shared Mode the inactivity logic is stricter than standard mode
    So even though you are interacting via the simulator, the device keeps triggering the “continue session?” sleep dialog

    A few things you can try:

    1. Disable Shared Mode Temporarily (If Possible)

    If you have access to MDM settings, put the headset into Single User Mode while developing and testing.
    Shared Mode forces the inactivity prompt and Meta’s simulator does not currently count controller movement as activity.

    Even temporarily switching to Single User mode often resolves the issue.

    2. Increase or Disable Inactivity Timeout on the Headset

    Even though your MDM is set to 1 hour, Meta OS has its own inactivity flag. From the headset or adb:

    adb shell settings put secure sleep_timeout 0

    or set a higher timeout value in milliseconds.

    This prevents sleep from triggering even if the device is not being moved.

    3. Use an “Activity Ping” Script (Workaround)

    Some developers work around this by running a tiny repeating ADB command that continually resets the screen timeout:

    adb shell svc power stayon true

    or by sending a “wakeup” input every few minutes. This tricks the OS into thinking the headset is active.

    4. Disable the Proximity Sensor (Properly)

    Covering the proximity sensor sometimes helps, but on Shared Mode it may still sleep.
    With ADB you can completely disable the sensor:

    adb shell setprop debug.oculus.disable_proximity 1

    Don’t forget to undo it later:

    adb shell setprop debug.oculus.disable_proximity 0

    5. Ask Your MDM Admin to Allow “VR Development Mode”

    Some MDM systems (e.g., ArborXR, ManageXR, etc.) have a feature to:

    Disable system idle timeout
    Prevent session expiry
    Override proximity sensor behavior

    If your fleet system supports this, enabling it will solve the issue without hacks.

    6. Reality: Simulator Doesn’t Count Input as Activity

    Right now, Meta XR Simulator’s input forwarding does not count controller input as headset activity, so the OS thinks the device is idle. That’s why this works fine when worn, but not on a desk.

    Meta is aware of this limitation, but until they update the simulator, developers need to:

     Increase timeout
     Disable sleep
     Or temporarily disable Shared Mode

    Quick fix that works for most developers

    Run:

    adb shell svc power stayon true

    Then restart the simulator — the headset will stay awake even without movement.

    Hope that helps, and good luck with your project!

→ Find helpful resources to begin your development journey in Getting Started

→ Get the latest information about HorizonOS development in News & Announcements.

→ Access Start program mentor videos and share knowledge, tutorials, and videos in Community Resources.

→ Get support or provide help in Questions & Discussions.

→ Show off your work in What I’m Building to get feedback and find playtesters.

→ Looking for documentation?  Developer Docs

→ Looking for account support?  Support Center

→ Looking for the previous forum?  Forum Archive

→ Looking to join the Start program? Apply here.

 

Recent Discussions