Happens both on iOS 12
& iOS 13
.
I have Bluetooth-central
correctly added on my Info.plist
I'm specifying a list of service UUIDs
What I am seeing:
- If I interact with our BLE device on the foreground, I can still scan for it on background, even hours and days later, as long as I don't turn off Bluetooth or restart the iOS device.
- If I have never interacted with it while the app is open, or If I restart the device, or turn off Bluetooth on the device, then when scanning in the background, didDiscoverPeripheral: never gets called, until I open the app, which triggers didDiscoverPeripheral: instantly.
- If I use
retrievePeripheralsWithIdentifiers:
and iOs can return the object "cached" then I can skip the scan and connect directly, which works perfectly. But sometimesretrievePeripheralsWithIdentifiers
: doesn't return the object so I can't always relay on that (And forces the user to interact with our device on the foreground first)