Geocoder returnerer false på isPresent ()

stemmer
0

Så skrev jeg noen kode for kart i min app, og det fungerer på telefonen min helt fint, dessverre det ikke fungerer på min emulator som ikke er komfortabel nok for meg her er koden:

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

Så når jeg feilsøke det ser jeg at variabelen a er alltid falsk på min emulator.

Jeg bruker android emulator for Visual Studio siden jeg har en AMD-prosessor (Ryzen 7 1800x) som jeg installerte Google Play-butikken og Google Play-tjenester (kartet fungerer helt fint, bare geocoder ikke), er nå det noen måte å fikse det ?

Som jeg leste på https://developer.android.com/reference/android/location/Geocoder.html website De Geocoder spørre metoder vil returnere en tom liste hvis det ikke backend tjeneste i plattformen. Kan jeg få tjenesten eller annen måte? Last den ned på min emulator eller noe sånt som dette?

Publisert på 24/04/2018 klokken 08:14
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Først isPresent () er en statisk metode, slik at anrop skal

Geocoder.isPresent();

IsPresent metoden "Returnerer sann hvis Geocoder metoder getFromLocation og getFromLocationName implementeres" og falsk ellers. Noen emulatorer har ikke geocoder tjenesten installert. Er metoden

geocoder.getFromLocationName 

tilbake det du trenger, eller en tom array?

Tekstutdraget fungerer helt fint på min Nexus 6 Android 7.0 API 24 emulator.

Svarte 24/04/2018 kl. 08:52
kilden bruker

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