Il codice seguente funziona perfettamente per i dispositivi reali in esecuzione su 1.5, 1.6 e 2.0 e l'emulatore in esecuzione su 2.1.Android: Nexus One - Geocoder causa IOException - funziona perfettamente con altri dispositivi ed emulatore
Tuttavia, eseguendolo sul Nexus One (in esecuzione 2.1) solleva un'IOException:
java.io.IOException: Unable to parse response from server
at android.location.Geocoder.getFromLocation(Geocoder.java:124)
Questo è il frammento di codice dove capita:
Double myLatitude = AppObject.myLocation.getLatitude();
Double myLongitude = AppObject.myLocation.getLongitude();
DEBUG.i(TAG, "My location: " + myLatitude + " | " + myLongitude);
Geocoder geocoder = new Geocoder(MainActivity.this);
java.util.List<Address> addressList;
try {
addressList = geocoder.getFromLocation(myLatitude, myLongitude, 5);
if(addressList!=null && addressList.size()>0) {
currentAddress = new String();
DEBUG.i(TAG,addressList.get(0).toString());
currentAddress = addressList.get(0).getAddressLine(0) + ", "
+ addressList.get(0).getAddressLine(1) + ", "
+ addressList.get(0).getAddressLine(2);
}
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
Ho quasi lo stesso codice in un'app che ho scritto e funziona perfettamente sul mio Nexus One. Sei in grado di ridurlo a qualcosa di specifico, come forse il Nexus One non ha una connessione internet quando chiami geocoder? –
Hai nel tuo manifest? –
haseman
In qualche modo funziona ora. Senza modifiche sul mio codice né sul Nexus One. Spaventoso. haseman: sto utilizzando ACCESS_COARSE_LOCATION e ACCESS_FINE_LOCATION, ma non sono riuscito a trovare il file raccomandato da android.permission.LOCATION nella documentazione: http://developer.android.com/intl/fr/reference/android/Manifest. permission.html – znq