[Pico XR] No internet connection when I build an app on PICO Neo 3

,

Hi everyone,

I am building a unity app on pico using OpenXR plugin. The app is working on oculus and I added the PICO Unity OpenXR SDK so now it builds on pico. To make things clear, there are two plugins that I need :

  • OpenXR plugin
  • PICO Unity OpenXR SDK

The app needs the internet to show some videos but it can’t connect to the internet on PICO. The PICO is already connected to the wifi, it is just in the app that it doesn’t work. It might be the openxr plugin 1.8.7 that changes my android manifest to disallow internet connection but there is no other version of the plugin available that I can find.

[edit] I had the same issue on meta quest and version 1.9.2 of Openxr Plugin solved it. So I just tried using version 1.9.2 on PICO. However there is no tickbox to say I want to have access to internet in the pico support, whereas there was a tickbox in the meta quest support.

This version isn’t accepted by the pico plugin yet so I changed the version number in the package-lock.json to force the app to build on pico. It did build but the internet issue was not solved.

Does someone have an idea on what I can do ?

[edit] I checked the android maifest in the apk build and has been removed during the build.

I found a quick hack fix. I added a line in the PICOModifyAndroidManifest.cs that adds “android.permission.INTERNET” in the android manifest.

internal void AddPICOMetaData(string path)
{
    CreateOrUpdateAndroidMetaData("pvr.app.type", "vr");
    CreateOrUpdateAndroidMetaData("pvr.sdk.version", PICOFeature.SDKVersion);
    CreateOrUpdateAndroidMetaData("pxr.sdk.version_code", "5800");
    CreateOrUpdateAndroidPermissionData("android.permission.INTERNET");

    if (PICOProjectSetting.GetProjectConfig().isEyeTracking)
    {
        CreateOrUpdateAndroidPermissionData("com.picovr.permission.EYE_TRACKING");
        CreateOrUpdateAndroidMetaData("picovr.software.eye_tracking", "1");
        CreateOrUpdateAndroidMetaData("eyetracking_calibration", PICOProjectSetting.GetProjectConfig().isEyeTrackingCalibration ? "true" : "false");
    }
    else
    {
        DeleteAndroidPermissionData("com.picovr.permission.EYE_TRACKING");
        DeleteAndroidMetaData("picovr.software.eye_tracking");
        DeleteAndroidMetaData("eyetracking_calibration");
    }

    CreateOrUpdateAndroidMetaData("handtracking", PICOProjectSetting.GetProjectConfig().isHandTracking ? "1" : "0");
    CreateOrUpdateAndroidMetaData("pvr.app.splash", PICOProjectSetting.GetProjectConfig().GetSystemSplashScreen(path));
}

Thanks! I was having a similar issue with my VR Project that uses Photon and Open XR on my Pico 4. This resolved it.

This saved me so much time. I was changing the flags with some Android manifest editing tool.