Geocoder restituisce false su isPresent ()

voti
0

Così ho scritto un po 'di codice per le mappe nella mia app, e funziona sul mio telefono bene, purtroppo non funziona sul mio emulatore che non è abbastanza comodo per me qui è il codice:

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

Così, quando il debug che vedo che la variabile a è sempre falso sul mio emulatore.

Io uso emulatore di Android per Visual Studio dal momento che ho un processore AMD (Ryzen 7 1800x) su cui ho installato Play Store di Google e Google Play Services (mappa funziona bene, basta geocoder non fa), ora c'è un modo per risolvere il problema ?

Come ho letto su https://developer.android.com/reference/android/location/Geocoder.html sito I metodi di query Geocoder restituirà un elenco vuoto se non c'è il servizio di back-end nella piattaforma. Posso ottenere il servizio in qualche modo? Scaricare sul mio emulatore o qualcosa di simile?

È pubblicato 24/04/2018 alle 08:14
fonte dall'utente
In altre lingue...                            


1 risposte

voti
0

Primo, isPresent () è un metodo statico così la chiamata deve essere

Geocoder.isPresent();

Metodo IsPresent "Restituisce true se i metodi Geocoder getFromLocation e getFromLocationName sono implementate" e false altrimenti. Alcuni emulatori non hanno il servizio geocoder installato. È il metodo

geocoder.getFromLocationName 

tornando quello che ti serve o una matrice vuota?

Lo snippet funziona bene sul mio Nexus 6P Android 7.0 API 24 emulatore.

Risposto il 24/04/2018 a 08:52
fonte dall'utente

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