Type: User Story
Priority: P2: Important
Affects Version/s: 5.11.0 Alpha
Fix Version/s: None
Component/s: Connectivity: Bluetooth
iOS apps running in the background experience limitations with regards to available functionality.
As long as the background app is connected to a peripheral it can continue to read characteristics and receives notifications. However when the peripheral moves out of reach, the app must change to scanning mode and re-establish the connection to the peripheral. Scanning for peripherals can be done via iOS in two ways:
- General service scan for any service uuid
- Targeted scans which require the user to specifiy the uuid of the to-be-found service
QtBluetooth currently employs the first option. The second option is not used. According to the official documentation (and confirmed by testing) the general scanning mode does not work in the background.
QLowEnergyController requires public API to permit the user to set the service uuid for which to scan while in the background.
An example of such a use case is an app that connects to BTLE peripherals while at home and reconnects to the home device when the user returns home after having left for a certain amount of time.
This problem is highlighted by https://medium.com/arkulpa/ios-stay-connected-to-an-external-ble-device-as-much-as-possible-699d434846d2
|For Gerrit Dashboard: QTBUG-67042|
|263448,4||WIP: Add scan filter to QBluetoothDeviceDiscoveryAgent||dev||qt/qtconnectivity||Status: NEW||-2||0|