I am getting following crash stack from Crashlytics:
Caused by java.lang.IllegalArgumentException: provider doesn't exist: fused
at android.os.Parcel.readException(Parcel.java:1687)
at android.os.Parcel.readException(Parcel.java:1636)
at android.location.ILocationManager$Stub$Proxy.requestLocationUpdates(ILocationManager.java:614)
at android.location.LocationManager.requestLocationUpdates(LocationManager.java:887)
at android.location.LocationManager.requestLocationUpdates(LocationManager.java:536)
at org.traccar.client.PositionProvider.startUpdates(PositionProvider.java:72)
Device - Motorola Moto C with Android 7.0
Relevant source code fragments:
public static Criteria getCriteria(String accuracy) {
Criteria criteria = new Criteria();
switch (accuracy) {
case "high":
criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH);
criteria.setPowerRequirement(Criteria.POWER_HIGH);
break;
case "low":
criteria.setHorizontalAccuracy(Criteria.ACCURACY_LOW);
criteria.setPowerRequirement(Criteria.POWER_LOW);
break;
default:
criteria.setHorizontalAccuracy(Criteria.ACCURACY_MEDIUM);
criteria.setPowerRequirement(Criteria.POWER_MEDIUM);
break;
}
return criteria;
}
public void startUpdates() {
locationManager.requestLocationUpdates(
interval, 0,
getCriteria(preferences.getString(MainFragment.KEY_ACCURACY, "medium")),
this, Looper.myLooper());
}
I'm not sure what the accuracy value is, but I think this error shouldn't happen in any case. If needed, full source can be found here.
Why is this happening? Android documentation doesn't list this as a possible exception scenario when calling requestLocationUpdates method.