Le code ci-dessous fonctionne parfaitement pour les périphériques réels fonctionnant sur 1.5, 1.6 et 2.0 ainsi que l'émulateur fonctionnant sur 2.1.Android: Nexus One - Geocoder causes IOException - fonctionne parfaitement avec d'autres dispositifs et émulateur
Cependant, l'exécuter sur le Nexus One (en cours d'exécution 2.1) soulève une IOException:
java.io.IOException: Unable to parse response from server
at android.location.Geocoder.getFromLocation(Geocoder.java:124)
C'est l'extrait de code où il se produit:
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;
}
J'ai presque exactement le même code dans une application que j'ai écrite, et ça marche bien sur mon Nexus One. Êtes-vous capable de réduire à quelque chose de spécifique, comme peut-être le Nexus One n'a pas de connexion Internet lorsque vous appelez le géocodeur? –
Avez-vous dans votre manifeste? –
haseman
Cela fonctionne d'une manière ou d'une autre maintenant. Sans aucun changement sur mon code ni sur le Nexus One. Effrayant. Auteur: J'utilise ACCESS_COARSE_LOCATION et ACCESS_FINE_LOCATION, mais je n'ai pas trouvé le fichier android.permission.LOCATION recommandé par vous dans la documentation: http://developer.android.com/intl/fr/reference/android/Manifest. permission.html – znq