Сбой в диспетчере местоположения Android - PullRequest
0 голосов
/ 14 сентября 2018

Я получаю следующий аварийный стек от 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)

Устройство - Motorola Moto C с Android 7.0

Соответствующие фрагменты исходного кода:

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Я не уверен, что значение accuracy, но я думаю, что эта ошибка не должна возникать в любом случае.При необходимости полный источник можно найти здесь .

Почему это происходит?В документации Android это не указано как возможный сценарий исключения при вызове метода requestLocationUpdates.

...