После 6 июня 2019 года у меня много ошибок при использовании класса Android Geocoder. Это только говорит, что GPRC Failed - PullRequest
0 голосов
/ 18 июня 2019

У меня есть вызов функции Android Geocoder getFromLocation , которая раньше работала большую часть времени до 6 июня 2019 года. Но после этого она часто дает сбой.

Раньше у меня было менее 10 ошибок до того дня, затем 6-го число достигло 100, и с тех пор было около 80 в день.

Вот что произошло, и в эти дни не было никакой новой версии или изменения кода. Исключение есть сообщение, которое только говорит "Сбой GPRC"

Графическая ошибка появления

Мой код довольно стандартный:

try {
    addresses = V1Motorista.getGeocoder().getFromLocation(lastLocation.latitude, lastLocation.longitude, 5)
} catch (e: Exception) {
    Log.d("GEOCODE TRY 1", e.message)
    Analytics.logError("Erro ao tentar resolver Geocode pela primeira vez", e)
}

и

class V1Motorista : Application() {

    companion object {
        lateinit var instance: V1Motorista

        fun getGeocoder(): Geocoder {
            return Geocoder(instance)
        }

    }
...
}

Я не знаю, что изменилось, любая помощь приветствуется.

1 Ответ

1 голос
/ 18 июня 2019

Попробуйте это, надеюсь, что это будет работать

public String getAddress(double lat, double lng) {
        Geocoder geocoder = new Geocoder(context, Locale.getDefault());
        try {
            List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
            if (addresses.size() > 0) {
                Address obj = addresses.get(0);
                String mainAddress = obj.getAddressLine(0);
                String add = obj.getAddressLine(0);
                add = add + "\n" + obj.getCountryName();
                add = add + "\n" + obj.getCountryCode();
                add = add + "\n" + obj.getAdminArea();
                add = add + "\n" + obj.getPostalCode();
                add = add + "\n" + obj.getSubAdminArea();
                add = add + "\n" + obj.getLocality();
                add = add + "\n" + obj.getSubThoroughfare();
                Log.e("IGA", "Address" + add);
                return mainAddress;
            } else {
                Toast.makeText(context, "Address still not selected.", Toast.LENGTH_SHORT).show();
                return "";
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
            return null;
        }
    }
...