powraca geocoder zająć w emulatorze Android, ale nikt w moim telefonie

głosy
0

Mam problem, gdy próbuję uzyskać adres z geocoder.getFromLocationName funkcji (, 1 „California”), to zakłada adres ale gdybym go przetestować na urządzeniu (Xiaomi MI5, Oreo) zwraca pustą listę.

Z góry dziękuję!

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);
    }

}
Utwórz 28/04/2018 o 11:14
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

Czy zgodę lokalizację do aplikacji w telefonie? jeśli nie .. iść do yourapp >> zgody >>> locationPermission ...

Odpowiedział 28/04/2018 o 11:25
źródło użytkownik

głosy
0

Może to być spowodowane przez błąd w implementacji producenta lub celowego braku tej funkcji. Jak stwierdzono tutaj: https://developer.android.com/reference/android/location/Geocoder

Klasa geocoder wymaga usługi backend, który nie jest zawarty w podstawowej android ram. Metody zapytań geocoder zwróci pustą listę, jeśli nie ma usługi backend w platformie. Użyj metody isPresent () w celu określenia, czy realizacja geocoder istnieje.

Odpowiedział 11/05/2018 o 11:57
źródło użytkownik

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