Geocoder возвращает адрес в Android эмулятора, но ни в моем телефоне

голоса
0

У меня есть проблема, что если я пытаюсь получить адрес с функцией geocoder.getFromLocationName (, 1 «Калифорния»), он основывает адрес, но если я проверить это на моем устройстве (Xiaomi Mi5, Oreo) возвращает пустой список.

Заранее спасибо!

private void geoLocate(){
    Log.d(TAG, geoLocate: geolocating);
    String searchString = mSearchText.getText().toString();
    Log.d(TAG, geoLocate: Searching for  + searchString);
    Geocoder geocoder = new Geocoder(this);
    List<Address> list = new ArrayList<>();

    try{
        if(geocoder.isPresent()){
             list = geocoder.getFromLocationName(searchString,1);
        } else{
            Log.d(TAG, geoLocate: GEOCODER IS NOT PRESENT);
        }

    }catch (IOException e){
        Log.e(TAG, geoLocate: IOException  + e.getMessage() );
    }

    if(list.size() > 0 ){
        Address address = list.get(0);
        Log.d(TAG, geoLocate: found a location:  + address.toString());
    }else{
        Log.d(TAG, geoLocate: Location not found);
    }

}
Задан 28/04/2018 в 11:14
источник пользователем
На других языках...                            


2 ответов

голоса
0

Вы дали разрешение Расположение для приложения на телефоне? если нет .. перейти к YourApp >> разрешения >>> locationPermission ...

Ответил 28/04/2018 в 11:25
источник пользователем

голоса
0

Это может быть вызвано ошибкой в реализации изготовителя или преднамеренным отсутствием этой функции. Как указано здесь: https://developer.android.com/reference/android/location/Geocoder

Класс Geocoder требует обслуживания серверной, который не входит в основной андроида рамки. Методы запроса Geocoder возвращает пустой список, если там нет серверной службы в платформе. С помощью метода isPresent (), чтобы определить, существует ли реализация геокодер.

Ответил 11/05/2018 в 11:57
источник пользователем

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