Jump to content
 

atonalfreerider

Verified Members
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

1 Neutral

About atonalfreerider

  • Rank
    Settler

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. We have multiple customers that are more comfortable having a Vive Focus connect to their corporate network via a computer that they control. We identified a popular tool for reverse tethering Android to a Windows PC via USB: https://github.com/Genymobile/gnirehtet The tool works fine, however it requires a signature-level permission to work: android.permission.BIND_VPN_SERVICE We can't find a way to grant this permission to the service on the Focus. Normally there would be a signature permission popup on an Android phone that would look like the (attached) image below. I tried running some of the sample projects included in the WaveVR native distribution. The closest example I tried was the wvr_simple_deviceservice sample. I also looked at this documentation: https://hub.vive.com/storage/docs/en-us/NativePermissionManager.html but I'm not sure how to import the PermissionManager into the source code for the tool. Any guidance on prompting an allowing the user to accept this permission would be appreciated. Or any other suggestions on how to reverse tether the Focus to a PC. @Cotta @JustinVive
  2. @Tony PH Lin Circling back here because we have discovered the reason why we've been unable to run the latest Unity plugin 3.1.4: It turns out that there were mobile VR packages that we thought we had removed from ProjectSettings, but were still present. Checking ProjectSettings.asset we removed "daydream" and "Oculus" and the build succeeded and ran without any AndroidManifest.xml collisions. Everything works now. Also there is no need for us to modify the platform settings for the wvr plugins, as we indicated above. They are good as they are imported.
  3. @Tony PH Lin@Corvus any update on the AndroidManifest collision issue? Thank you
  4. @Corvus @Tony PH Lin as I explained above this is from a clean import. Deleting and re-importing the plugins folder has no effect. The gradle Android Manifest merger is failing specifically between wvr_client.aar for the attribute application@theme=@style/UnityThemeSelector and the Assets\WaveVR\Platform\AndroidWVR\AndroidManifest.xml <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:theme="@style/Theme.WaveVR.Loading" android:resizeableActivity="false" tools:replace="android:theme"> <!--You can use your theme here.--> This is the error from gradle: Attribute application@theme value=(@style/UnityThemeSelector) from AndroidManifest.xml:4:16-57 is also present at [:wvr_client:] AndroidManifest.xml:15:9-50 value=(@style/Theme.WaveVR.Black). Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:4:3-19:17 to override. Nothing has been changed since the clean import. Thank you in advance for your help @Cotta
  5. @Tony PH Lin there is still a collision between the AndroidManifest and wvr_client for @style/Theme.WaveVR.Black while Gradle is building. What is the best way to resolve this? CommandInvokationFailure: Gradle build failed. C:/Program Files/Unity/Hub/Editor/2019.2.4f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools\OpenJDK\Windows\bin\java.exe -classpath "C:\Program Files\Unity\Hub\Editor\2019.2.4f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-5.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleDebug" stderr[ C:\Users\johnb\Desktop\PRIMITIVE\Temp\gradleOut\src\main\AndroidManifest.xml:4:16-57 Error: Attribute application@theme value=(@style/UnityThemeSelector) from AndroidManifest.xml:4:16-57 is also present at [:wvr_client:] AndroidManifest.xml:15:9-50 value=(@style/Theme.WaveVR.Black). Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:4:3-19:17 to override. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':processDebugManifest'. > Manifest merger failed : Attribute application@theme value=(@style/UnityThemeSelector) from AndroidManifest.xml:4:16-57 is also present at [:wvr_client:] AndroidManifest.xml:15:9-50 value=(@style/Theme.WaveVR.Black). Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:4:3-19:17 to override. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 6s @Cotta
  6. @Tony PH Lin @JustinViveSame issue as @juanyvos but it's not related to a clean import of the unity package. After doing a clean import of 3.1.1, by default the following aar libraries are disabled for Android: wvr_client.aar wvr_ime_client.aar wvr_permission_client.aar wvr_resindicator.aar wvr_unity_plugin_2017.aar This was not the case in 3.0.2, they were all enabled for Android. As a result, when attempting to build and run on the Focus, logcat gives the following errors: AndroidJavaException: java.lang.ClassNotFoundException: Didn't find class "com/htc/vr/unity/WVRUnityVRActivity$OEMConfigCallback" Unable to find wvrunity DllNotFoundException: wvrunity If the aar libraries are enabled, it fails to merge the AndroidManifest as @juanyvos found. This happens in Unity 2018 LTS as well as Unity 2019 Are the aar libraries supposed to not be included? How does wvrunity get deployed to the apk? Thank you
  7. In case it hasn't been addressed here before, the black screen that appears on first load that is only dismissable by pausing the application (by removing the headset and putting it back on), can be automatically cleared by forcing the application to pause and unpause on first load. Doing a forced pause and unpause requries a modification to the WaveSDK code in WaveVR_Render in OnApplicationPause(): void OnApplicationPause(bool pauseStatus) { Pause(pauseStatus); } public void Pause(bool pauseStatus) { Log.d(LOG_TAG, "Pause(" + pauseStatus + ")"); if (pauseStatus) { WaveVR_Utils.IssueEngineEvent(WaveVR_Utils.EngineEventID.UNITY_APPLICATION_PAUSE); if (synchronizer != null) synchronizer.sync(); lefteye.getCamera().targetTexture = null; righteye.getCamera().targetTexture = null; textureManager.ReleaseTexturePools(); } else { WaveVR_Utils.IssueEngineEvent(WaveVR_Utils.EngineEventID.UNITY_APPLICATION_RESUME); } setLoadingCanvas(true); enableRenderLoop(!pauseStatus); } Pause can then be called externally, ideally from a coroutine or a late update with a small delay to allow for the WaveSDK assets to load. The pause and unpause in the renderloop is inperceptible to the user. This is a hack and will hopefully be addressed in a future release.
×
×
  • Create New...