El siguiente código funciona perfectamente para dispositivos reales que se ejecutan en 1.5, 1.6 y 2.0, así como el emulador que se ejecuta en 2.1.Android: Nexus One - Geocoder causa IOException - funciona perfectamente con otros dispositivos y el emulador
Sin embargo, ejecutándolo en el Nexus One (correr 2.1) plantea una IOException:
java.io.IOException: Unable to parse response from server
at android.location.Geocoder.getFromLocation(Geocoder.java:124)
Ese es el fragmento de código en el que sucede:
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;
}
Tengo casi exactamente el mismo código en una aplicación que he escrito, y funciona bien en mi Nexus One. ¿Puedes limitarlo a algo específico, como que quizás el Nexus One no tenga conexión a Internet cuando llamas al geocodificador? –
¿Tiene en su manifiesto? –
haseman
De alguna manera funciona ahora. Sin ningún cambio en mi código ni en el Nexus One. Escalofriante. haseman: Estoy usando ACCESS_COARSE_LOCATION y ACCESS_FINE_LOCATION, pero no pude encontrar la recomendada android.permission.LOCATION en la documentación: http://developer.android.com/intl/fr/reference/android/Manifest. permission.html – znq