diff --git a/app/src/main/java/org/traccar/client/PositionProvider.java b/app/src/main/java/org/traccar/client/PositionProvider.java index 549fe99..b0c7b98 100644 --- a/app/src/main/java/org/traccar/client/PositionProvider.java +++ b/app/src/main/java/org/traccar/client/PositionProvider.java @@ -27,6 +27,7 @@ import android.os.BatteryManager; import android.os.Bundle; import android.preference.PreferenceManager; import android.util.Log; +import android.widget.Toast; public class PositionProvider implements LocationListener { @@ -67,9 +68,13 @@ public class PositionProvider implements LocationListener { @SuppressLint("MissingPermission") public void startUpdates() { - locationManager.requestLocationUpdates( - getProvider(preferences.getString(MainFragment.KEY_ACCURACY, "medium")), - distance > 0 || angle > 0 ? MINIMUM_INTERVAL : interval, 0, this); + try { + locationManager.requestLocationUpdates( + getProvider(preferences.getString(MainFragment.KEY_ACCURACY, "medium")), + distance > 0 || angle > 0 ? MINIMUM_INTERVAL : interval, 0, this); + } catch (RuntimeException e) { + Toast.makeText(context, e.getMessage(), Toast.LENGTH_LONG).show(); + } } public static String getProvider(String accuracy) { diff --git a/app/src/main/java/org/traccar/client/ShortcutActivity.java b/app/src/main/java/org/traccar/client/ShortcutActivity.java index 48ec1f4..91d3338 100644 --- a/app/src/main/java/org/traccar/client/ShortcutActivity.java +++ b/app/src/main/java/org/traccar/client/ShortcutActivity.java @@ -111,28 +111,32 @@ public class ShortcutActivity extends AppCompatActivity { String provider = PositionProvider.getProvider( preferences.getString(MainFragment.KEY_ACCURACY, "medium")); - Location location = locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER); - if (location != null) { - sendAlarmLocation(location); - } else { - locationManager.requestSingleUpdate(provider, new LocationListener() { - @Override - public void onLocationChanged(Location location) { - sendAlarmLocation(location); - } + try { + Location location = locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER); + if (location != null) { + sendAlarmLocation(location); + } else { + locationManager.requestSingleUpdate(provider, new LocationListener() { + @Override + public void onLocationChanged(Location location) { + sendAlarmLocation(location); + } - @Override - public void onStatusChanged(String provider, int status, Bundle extras) { - } + @Override + public void onStatusChanged(String provider, int status, Bundle extras) { + } - @Override - public void onProviderEnabled(String provider) { - } + @Override + public void onProviderEnabled(String provider) { + } - @Override - public void onProviderDisabled(String provider) { - } - }, Looper.myLooper()); + @Override + public void onProviderDisabled(String provider) { + } + }, Looper.myLooper()); + } + } catch (RuntimeException e) { + Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show(); } }