public async void OnLocationChanged(Android.Locations.Location location) { //mLastLocation = location; System.Diagnostics.Debug.WriteLine("location"); DateTime now = DateTime.Now.ToLocalTime(); string currentTime = (string.Format("{0}", now)); HaxOnTheWay.Models.Location Longitud = new HaxOnTheWay.Models.Location(); HaxOnTheWay.Services.RestService Services = new HaxOnTheWay.Services.RestService(); Longitud.Long = (float)location.Longitude; Longitud.Lat = (float)location.Latitude; Longitud.time = currentTime; var instanceID = FirebaseInstanceId.Instance; //instanceID.DeleteInstanceId(); var iid1 = instanceID.Token; //var iid2 = instanceID.GetToken("haxontheway", Firebase.Messaging.FirebaseMessaging.InstanceIdScope); //System.Diagnostics.Debug.WriteLine("token ss" + iid1); Longitud.sToken = iid1; if (HaxOnTheWay.Helpers.Settings.IsLoggedIn) { if (!isStartedF) { isStartedF = true; RegisterForegroundService(); } List <Drivers> requestCommands = await App.Database.GetAllDriversAsync(); //List<dataSourceCommands> reqestSourceCommand = new List<dataSourceCommands>(); foreach (Drivers item in requestCommands) { //dataSourceCommands items = new dataSourceCommands(); Longitud.idConductor = item.iDriver; idConductor = item.iDriver; } Longitud.indConnect = 1; estatus_ind = true; //SendLocation(Longitud); try { await Services.SendLocation(Longitud); } catch (Java.Lang.Exception e) { System.Diagnostics.Debug.WriteLine("error location : " + e.Message.ToString()); } } else { if (estatus_ind) { Longitud.idConductor = idConductor; Longitud.indConnect = 0; estatus_ind = false; try { await Services.SendLocation(Longitud); } catch (Java.Lang.Exception e) { System.Diagnostics.Debug.WriteLine(e.Message.ToString()); } StopForeground(true); //StopSelf(); //isStarted = false; isStartedF = false; } } }
// ILocationListener is a way for the Service to subscribe for updates // from the System location Service public async void OnLocationChanged(Android.Locations.Location location) { System.Diagnostics.Debug.WriteLine("location"); this.LocationChanged(this, new LocationChangedEventArgs(location)); DateTime now = DateTime.Now.ToLocalTime(); string currentTime = (string.Format("{0}", now)); // This should be updating every time we request new location updates // both when teh app is in the background, and in the foreground HaxOnTheWay.Models.Location Longitud = new HaxOnTheWay.Models.Location(); HaxOnTheWay.Services.RestService Services = new HaxOnTheWay.Services.RestService(); Longitud.Long = (float)location.Longitude; Longitud.Lat = (float)location.Latitude; Longitud.time = currentTime; var instanceID = FirebaseInstanceId.Instance; //instanceID.DeleteInstanceId(); var iid1 = instanceID.Token; //var iid2 = instanceID.GetToken("haxontheway", Firebase.Messaging.FirebaseMessaging.InstanceIdScope); //System.Diagnostics.Debug.WriteLine("token ss" + iid1); Longitud.sToken = iid1; if (Settings.IsLoggedIn) { List <Drivers> requestCommands = await App.Database.GetAllDriversAsync(); //List<dataSourceCommands> reqestSourceCommand = new List<dataSourceCommands>(); foreach (Drivers item in requestCommands) { //dataSourceCommands items = new dataSourceCommands(); Longitud.idConductor = item.iDriver; idConductor = item.iDriver; } Longitud.indConnect = 1; estatus_ind = true; //SendLocation(Longitud); try{ await Services.SendLocation(Longitud); }catch (Exception e) { System.Diagnostics.Debug.WriteLine("error location : " + e.Message.ToString()); } } else { if (estatus_ind) { Longitud.idConductor = idConductor; Longitud.indConnect = 0; estatus_ind = false; try{ await Services.SendLocation(Longitud); }catch (Exception e) { System.Diagnostics.Debug.WriteLine(e.Message.ToString()); } } } Log.Debug(logTag, String.Format("Latitude is {0}", location.Latitude)); Log.Debug(logTag, String.Format("Longitude is {0}", location.Longitude)); Log.Debug(logTag, String.Format("Altitude is {0}", location.Altitude)); Log.Debug(logTag, String.Format("Speed is {0}", location.Speed)); Log.Debug(logTag, String.Format("Accuracy is {0}", location.Accuracy)); Log.Debug(logTag, String.Format("Bearing is {0}", location.Bearing)); }