Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix no location result from getLocation with "Precise Location" off on iOS #984

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion packages/location/ios/Classes/LocationPlugin.m
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,17 @@ - (FlutterError *)onCancelWithArguments:(id)arguments {

- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray<CLLocation *> *)locations {
if (self.waitNextLocation > 0) {

// Check if location accuracy is reduced on iOS 14 and above
// This means precise location is disabled and only one location update will be sent
BOOL isReducedAccuracy = NO;
if (@available(iOS 14.0, *)) {
CLAccuracyAuthorization accuracy = [self.clLocationManager accuracyAuthorization];
isReducedAccuracy = (accuracy == CLAccuracyAuthorizationReducedAccuracy);
}

// Only use the guard if precise location is enabled
if (!isReducedAccuracy && self.waitNextLocation > 0) {
self.waitNextLocation -= 1;
return;
}
Expand Down