UOculusFunctionLibrary::IsDeviceTracked() always return false on GearVR

UOculusFunctionLibrary::IsDeviceTracked() returns false on GearVR regardless of whether or not a GearVR Controller is connected and active. This bug seems to have been introduced with the first patch for UE4.18.1

Repro steps:

  • Install the Launcher version of Unreal engine 4.18.0
  • Get the “GearVRController” sample from Oculus’ Github: https://github.com/Oculus-VR/UnrealEngine/tree/4.17/Samples/Oculus/GearVRControllerSample (make sure to get the version from the 4.17 branch, as the sample is broken on the 4.18 branch)
  • Right-click on the sample’s uproject file, select Switch Unreal Engine Version and associate it with 4.18.
  • Open the sample, and modify the level blueprint. Each tick, print the return value of blueprint node IsDeviceTracked for the left and right hands.
  • Package the game for Android, and check that the return value is correct.

Then:

  • Install the Launcher version of Unreal engine 4.18.1
  • Package the game for Android, and see that IsDeviceTracked now always returns false.
  • Move the thumb on the controller’s thumbstick, and watch the white box in the scene moving to replicate the thumbstick position, showing that the controller is actually detected and that its input work just fine.

I managed to find a workaround after asking in the Oculus forum:

Thanks Rudy. I wasn’t sure who was in charge of maintaining the Oculus integration. I’ll get in touch with Oculus next time I encounter a bug with the Oculus plugin.

Thanks ! I can confirm the suggested workaround works fine for us (retrieving the tracking status directly on the MotionController component).

Hello jlecorre,

We do not provide support for unofficial branches of the engine. You will need to contact Oculus support for further assistance. I have provided a link to create a support ticket with Oculus below. I hope that this information helps.

Link: https://tickets.oculusvr.com/hc/en-us/requests/new

Make it a great day