Geocoder nie iść na Oreo

głosy
0

Mam aplikacji, które muszą zbierać adres z markera na Google Maps API. Przetestowałem ten kod i działa dobrze na urządzeniach z systemem Android 6.0:

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
        try {
            List<Address> addressList1 = geocoder.getFromLocation(currentLatitude,currentLongitude,1);
            Address addressCurrent = addressList1.get(0);
            full_address = addressCurrent.getAddressLine(0); //Detail address
            country = addressCurrent.getCountryName();
            //locality =  addressCurrent.getLocality(); //sub-district
            admin_area = addressCurrent.getAdminArea(); //City
            sub_admin_area = addressCurrent.getSubAdminArea(); //District
            road_name = addressCurrent.getThoroughfare(); // road
            Toast.makeText(this, full_address, Toast.LENGTH_SHORT).show();
        }catch (IOException e){
            Toast.makeText(this, No Data, Toast.LENGTH_SHORT).show();
            Log.e(error geocoder, e.toString());
        }

Ale gdy próbuję uruchomić na urządzeniach z Androidem 8.1 zwraca dziennik błędów:

E / błąd geocoder: java.io.IOException: Netcode: -1000, NetRes: {}

Starałem się go szukać, ale nie znaleziono rozwiązanie. Jak mogę rozwiązać ten problem?

Utwórz 06/09/2018 o 07:43
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

Jak Gencoder doc powiedzieć: Użyj metody isPresent () w celu określenia, czy realizacja geocoder istnieje.

więc metodę isPresent () zadzwonić po pierwsze, i ręcznie sprawdzić stan sieci urządzenia.

Jeśli nadal nie udało, być może trzeba utworzyć niestandardową implementację geocoder, ten link jest pomocne.

Odpowiedział 06/09/2018 o 08:11
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more