WatchOS 27 throttles BLE discoveries

Hi!

We have an app that highly depends on CoreBluetooth including scanning for peripherals with an advertised serviceUUID. Our app sets the CBCentralManagerScanOptionAllowDuplicatesKey flag to true while scanning. Receiving continuous discovery events about nearby devices is key to measure the RSSI before connecting.

Updating some of our test devices to watchOS 27 we noticed that our app is broken. To analyze further we created a simple app to compare behavior between watchOS 26 and 27, and the difference is clear. On the 27 device it behaves like the flag is ignored and we only receive a couple of callbacks to centralManager(_:didDiscover:advertisementData:rssi:) then it stops. We could not find any documentation declaring this as a new restriction or something regarding that has changed.

Is this a bug, or is there a way to get the old behavior on the new OS?

The example app used for testing is available here: https://github.com/levente-gulyas-skidata/WatchBLEExperiments

(Change the serviceUUID for testing if needed)

Thank you, Levi

WatchOS 27 throttles BLE discoveries
 
 
Q