Details
-
Suggestion
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.12.0 Alpha
-
None
-
iOS 11
Description
QGeoPositionInfoSource supports limiting the update interval by assigning values to updateInterval and minimumUpdateInterval.
iOS's CoreLocation API doesn't support changing the update interval, and instead wants developers to set the CLLocationManager's distanceFilter and/or desiredAccuracy. (The QGeoPositionInfoSource update interval values are used for a timeout in the QGeoPositionInfoSource iOS implementation, which is useful.)
Currently, the QGeoPositionInfoSource implementation sets the desiredAccuracy to kCLLocationAccuracyBest and doesn't set the distanceFilter. This seems to use the Core Location services frequently when updates are enabled, and is indicated on the Xcode Debug Navigator as having a high energy impact.
Android also supports setting a distance minimum with its LocationManager's requestLocationUpdates (the value is currently always set to 0) which might help justify adding it to QGeoPositionInfoSource.