diff --git a/app/src/main/java/com/SecUpwN/AIMSICD/service/LocationTracker.java b/app/src/main/java/com/SecUpwN/AIMSICD/service/LocationTracker.java index 3317f96be..cdeebc150 100644 --- a/app/src/main/java/com/SecUpwN/AIMSICD/service/LocationTracker.java +++ b/app/src/main/java/com/SecUpwN/AIMSICD/service/LocationTracker.java @@ -48,12 +48,27 @@ public class LocationTracker { public void start() { lastKnownLocation(); - lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, GPS_MIN_UPDATE_TIME, - GPS_MIN_UPDATE_DISTANCE, mLocationListener); - lm.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, GPS_MIN_UPDATE_TIME, - GPS_MIN_UPDATE_DISTANCE, mLocationListener); - lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, GPS_MIN_UPDATE_TIME, - GPS_MIN_UPDATE_DISTANCE, mLocationListener); + + try { + lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, GPS_MIN_UPDATE_TIME, + GPS_MIN_UPDATE_DISTANCE, mLocationListener); + } catch (IllegalArgumentException e) { + // provider doesn't exist, so ignore + } + + try { + lm.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, GPS_MIN_UPDATE_TIME, + GPS_MIN_UPDATE_DISTANCE, mLocationListener); + } catch (IllegalArgumentException e) { + // provider doesn't exist, so ignore + } + + try { + lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, GPS_MIN_UPDATE_TIME, + GPS_MIN_UPDATE_DISTANCE, mLocationListener); + } catch (IllegalArgumentException e) { + // provider doesn't exist, so ignore + } } public void stop() {