Showing results for 
Search instead for 
Did you mean: 

Bluetooth scan and permissions. BLE and the CompanionDeviceManager

Level 2


I am working on a project that connects  BLE Gatt devices ( heart rate, FTMS, Power, speed, cadence profiles... ) to Oculus Quest headsets .

I've been using the alpha and release channels to regularly upload and distribute the app with a test user group.

I got this error message the last time that I uploaded  a build : " DO not use location permissions to scan for nearby Bluetooth devices. Update your app to use the COmpanionDeviceManager API to make and manage connections...." 

I need help using the CompanionDeviceManager API on Oculus Quest. I've been trying A LOT of things and permissions, but I can't make it work on Quest. The device scan seems to silently fail.

I made it work seamlessly on my Android phone ( the COmpanionDeviceManager API  BLE device scan & bonding ), but it doesn't work on Oculus Quest.


Also :  there are these 2 valid permissions in the Quest VRC checks,  BLUETOTH_SCAN and BLUETOOTH_CONNECT . The problem is that they don't seem to be accepted by the Oculus Quest headset.

They are permissions introduced with Android S.


Please help,

I would really need to talk with someone from Oculus about the BLE support.







Level 2


I'm in the exact same situation.

Since the LOCATION permissions are now prohibited, we've been forced to look into that CompanionDeviceManager API. I'm unfortunately unable to make it work in our Unity project. It feels like the CompanionDeviceManager has not been designed at all for this kind of use case.

I start to believe that this API can't be used in the headset, but if it can, it will have to be through an unconventional and undocumented way.
So @oculus, if you're so sure that the CompanionDeviceManager can be used, could you please provide us an example ?


Please help !

Level 2

If anybody figures this one out, I'd be super happy to know how. I'm in the same situation, app being rejected from applab due to this constrain but I am unable to make the BLUETOOTH_SCAN work ... not even sure what it does. 

I launched a native Android app using CompanionDeviceManager working on mobile on Quest and it doesn't work at all. So no more possibility to work with BLE devices. What is not normal is that existing apps continue to use location permissions! 

Level 4

We're in the same boat here - we'd like to be able to connect to heart rate monitors and such directly from the Quest without needing a separate companion app that acts as a proxy. It looks like some Bluetooth devices can be accessed on the Quest by using the experimental Home settings UI but that only works for devices that can be paired. It would be good to hear if Oculus are planning on supporting the Companion API for being able to access BLE/Gatt devices that don't require (or support) pairing.

Level 3

Already contacted them and they said they started investigation to see how to make work Companion API. I suppose it will require an OS update if they manage to solve it. Will update you when I get some news!

Level 2

We completely gave up. They support was unhelpful and felt completely oblivious to the issue, although trying to sound otherwise. Their online help saying we shoudl use BLUETOOTH_SCAN although that being android 12 feature not even present on phones yet and quest for sure not running it is just weird. Beginning july, we cannot even upload apps using bluetooth location to applab for internal purposes or private deployment. Relying on such whimsy behaviour is dangerous for any developer. Even if they allow location services for bluetooth pairing in the future, they demonstrated that they can simply stop it without any communication. Same goes for other bluetooth pairing.

Level 3

Did anyone get any further with this. I have an app that connects via BLE and I've just noticed that they've banned ACCESS_CORSE_LOCATION. It's annoying that existing apps can still use this permission. Why shouldn't every app have to play by the same rules?


I'd like to avoid having to use a companion phone app if possible.

Level 3

Did you get anywhere with this? I'm in exactly the same position with an app working fine on an Android phone but not prompting for user input on Oculus. I thought it might be an issue with the GameActivity class in Unreal but I see comments here from people using Unity. It doesn't appear to be a problem with permissions either as I can connect to a BLE device if I hard-code the mac address. 

Level 3

Hello, same here. I'd like to connect to a BLE device to use my quest2 for my arduino projects. Anyone got any idea on how to solve this issue?