public void OnLocationChanged(Android.Locations.Location location) { _currentLocation = location; if (_currentLocation == null) { Global.currentPosition = new Xamarin.Forms.Maps.Position (0, 0); Global.PositionChangedNumber = 1; //_locationText.Text = "Unable to determine your location."; } else { Global.currentPosition = new Xamarin.Forms.Maps.Position (location.Latitude, location.Longitude); var x = new platformSpecific_Android (); x.userlatitude = location.Latitude; x.userlongitude = location.Longitude; Global.PositionChangedNumber += 1; Global.calculateDistance (false); Global.LocationUpdatePending = true; //_locationText.Text = String.Format ("{0},{1}", _currentLocation.Latitude, _currentLocation.Longitude); } }
protected override void OnResume() { base.OnResume (); try { //posso provenire dalla finestra settaggi if (_locationProvider == "" || _locationProvider == "passive") { InitializeLocationManager (); } if (_locationProvider == "" || _locationProvider == "passive") { Global.currentPosition = new Xamarin.Forms.Maps.Position (Global.defaultPosition.Latitude, Global.defaultPosition.Longitude); var x = new platformSpecific_Android (); x.userlatitude = Global.defaultPosition.Latitude; x.userlongitude = Global.defaultPosition.Longitude; Global.PositionChangedNumber += 1; Global.calculateDistance (false); Global.LocationUpdatePending = true; return; } _locationManager.RequestLocationUpdates (_locationProvider, 60000, 500, this); //60 sec e 500 metri } catch (Exception ex) { } }