public async Task <Location> GetLastKnownLocationAsync() { await Permissions.EnsureGrantedOrRestrictedAsync <Permissions.LocationWhenInUse>(); AndroidLocation bestLocation = null; foreach (var provider in LocationManager.GetProviders(true)) { var location = LocationManager.GetLastKnownLocation(provider); if (location != null && IsBetterLocation(location, bestLocation)) { bestLocation = location; } } return(bestLocation?.ToLocation()); }
static async Task <Location> PlatformLastKnownLocationAsync() { await Permissions.RequestAsync <Permissions.LocationWhenInUse>(); var lm = Platform.LocationManager; AndroidLocation bestLocation = null; foreach (var provider in lm.GetProviders(true)) { var location = lm.GetLastKnownLocation(provider); if (location != null && IsBetterLocation(location, bestLocation)) { bestLocation = location; } } return(bestLocation?.ToLocation()); }
static async Task <Location> PlatformLastKnownLocationAsync() { await Permissions.RequireAsync(PermissionType.LocationWhenInUse); var lm = Platform.LocationManager; AndroidLocation bestLocation = null; foreach (var provider in lm.GetProviders(true)) { var location = lm.GetLastKnownLocation(provider); if (bestLocation == null || IsBetterLocation(location, bestLocation)) { bestLocation = location; } } if (bestLocation == null) { return(null); } return(bestLocation.ToLocation()); }