X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosdroid%2Fapp%2Fsrc%2Fmain%2Fjava%2Forg%2Faltusmetrum%2FAltosDroid%2FAltosDroid.java;fp=altosdroid%2Fapp%2Fsrc%2Fmain%2Fjava%2Forg%2Faltusmetrum%2FAltosDroid%2FAltosDroid.java;h=5caee5f87aab5323ea0032cf54f865649ff22a8b;hp=404b63ace7df8582e90c2e50ecb06ff6c04d1169;hb=f6f6b53283d6a02cb62d3315d71e5a6911f59646;hpb=24215a4a2049e51c335b76767f9ed13d186ac408 diff --git a/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/AltosDroid.java index 404b63ac..5caee5f8 100644 --- a/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/app/src/main/java/org/altusmetrum/AltosDroid/AltosDroid.java @@ -742,14 +742,23 @@ public class AltosDroid extends FragmentActivity implements AltosUnitsListener, private void enable_location_updates() { // Listen for GPS and Network position updates LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); - locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, this); - location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + if (locationManager != null) + { + try { + locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, this); + location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + } catch (Exception e) { + locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 1, this); + location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); + } - if (location != null) - AltosDebug.debug("Resume, location is %f,%f\n", - location.getLatitude(), - location.getLongitude()); + if (location != null) + AltosDebug.debug("Resume, location is %f,%f\n", + location.getLatitude(), + location.getLongitude()); + AltosDebug.debug("Failed to get GPS updates\n"); + } update_ui(telemetry_state, state, true); }