Геокодер не идет на Oreo

У меня есть приложение, которое должно собирать адрес с маркера в Google Maps API. Я протестировал этот код, и он отлично работает на устройствах под управлением 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());
        }

Но когда я пытаюсь запустить на устройствах Android 8.1, он возвращает журнал ошибок:

E/ошибка геокодера: java.io.IOException: NetCode:-1000,NetRes:{}

Я попытался найти его, но не нашел решения. Как я могу это исправить?


person Sơn Tùng    schedule 06.09.2018    source источник


Ответы (1)


Как указано в Gencoder: Используйте метод isPresent(). чтобы определить, существует ли реализация Geocoder.

поэтому сначала вызовите метод isPresent() и вручную проверьте состояние сети устройства.

Если все еще не удалось, возможно, вам нужно создать собственную реализацию геокодера, эта ссылка полезно.

person navylover    schedule 06.09.2018