Geocoder zwraca false na isPresent ()

głosy
0

Więc napisałem jakiś kod na mapach w mojej aplikacji, i to działa na moim telefonie po prostu w porządku, niestety to nie działa na moim emulatora, który nie jest wystarczająco wygodne dla mnie Oto kod:

String  searchString = mSearchText.getText().toString();

Geocoder geocoder = new Geocoder(this);
List<Address> list = new ArrayList<>();
try{
    int i=0;
    while(list.size()==0 && i<10) {
        boolean a = geocoder.isPresent();
        list = geocoder.getFromLocationName(searchString,1);
        i++;
    }
}catch(IOException e){
    Log.d(TAG, geoLocate: IOException  + e.getMessage());
}

Więc kiedy debugować go widzę, że zmienna „a” jest zawsze fałszem na moim emulatora.

Używam android emulator visual studio, ponieważ mam procesor AMD (Ryzen 7 1800x), na którym zainstalowałem sklep Google Play i Google Play (mapa działa dobrze, tylko geocoder nie), teraz jest jakiś sposób aby to naprawić ?

Jak czytam na https://developer.android.com/reference/android/location/Geocoder.html internetowej „Metody zapytań geocoder zwróci pustą listę, jeśli nie ma usługi backend w platformie.” Mogę dostać usługę jakoś? Pobierz go na emulatorze lub coś takiego?

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


1 odpowiedzi

głosy
0

Po pierwsze, isPresent () to metoda statyczna więc połączenie powinno być

Geocoder.isPresent();

Metoda IsPresent „Zwraca true jeśli metody geocoder getFromLocation i getFromLocationName są realizowane” i false w przeciwnym wypadku. Niektóre emulatory nie zainstalowano usługi geocoder. Jest metoda

geocoder.getFromLocationName 

wracając co trzeba lub pustą tablicą?

Twój fragment działa dobrze na moim Nexus 6P Android 7.0 API 24 emulatorze.

Odpowiedział 24/04/2018 o 08:52
źródło użytkownik

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