예제 #1
0
        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());
        }