Geocoder false op isPresent ()

stemmen
0

Dus schreef ik een code voor de kaarten in mijn app, en het werkt op mijn telefoon prima, helaas werkt het niet op mijn emulator die niet comfortabel genoeg voor mij is hier de code:

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

Dus toen ik debuggen zie ik dat de variabele a is altijd vals op mijn emulator.

Ik gebruik android emulator voor Visual Studio want ik heb een AMD-processor (Ryzen 7 1800x) waarop ik geïnstalleerde Google Play Store en Google Play-services (kaart werkt prima, gewoon geocoder niet), nu is er een manier om het probleem te verhelpen ?

Zoals ik gelezen op https://developer.android.com/reference/android/location/Geocoder.html website The Geocoder vraag methoden zal terugkeren een lege lijst als er geen back-end service in het platform. Kan ik de dienst een of andere manier? Download het op mijn emulator of zoiets?

De vraag is gesteld op 24/04/2018 om 08:14
bron van user
In andere talen...                            


1 antwoorden

stemmen
0

Ten eerste, isPresent () is een statische methode zodat het gesprek zou moeten zijn

Geocoder.isPresent();

IsPresent methode "Geeft waar als de Geocoder methoden getFromLocation en getFromLocationName worden getroffen" anders en onwaar. Sommige emulators hebben niet de geocoder dienst geïnstalleerd. Is de methode

geocoder.getFromLocationName 

terug wat je nodig hebt of een lege array?

Uw snippet werkt prima op mijn Nexus 6P Android 7.0 API 24 emulator.

antwoordde op 24/04/2018 om 08:52
bron van user

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