Details
-
User Story
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.11.0 Alpha
-
None
Description
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
Attachments
Issue Links
- relates to
-
QTBUG-31674 QtBluetooth backlog
- Open
Gerrit Reviews
For Gerrit Dashboard: QTBUG-67042 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
263448,4 | WIP: Add scan filter to QBluetoothDeviceDiscoveryAgent | dev | qt/qtconnectivity | Status: NEW | -2 | 0 |