Der folgende Code funktioniert perfekt für reale Geräte unter 1.5, 1.6 und 2.0 sowie den Emulator auf 2.1 läuft.Android: Nexus One - Geocoder verursacht IOException - funktioniert perfekt mit anderen Geräten und Emulator
es jedoch auf dem Nexus Ausführung One (Lauf 2.1) wirft eine IOException:
java.io.IOException: Unable to parse response from server
at android.location.Geocoder.getFromLocation(Geocoder.java:124)
, dass der Code-Schnipsel ist, wo es passiert:
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;
}
Ich habe fast genau den gleichen Code in einer App, die ich geschrieben habe, und es läuft gut auf meinem Nexus One. Können Sie es auf etwas Bestimmtes beschränken? Vielleicht hat das Nexus One keine Internetverbindung, wenn Sie den Geocoder anrufen? –
Haben Sie in Ihrem Manifest? –
haseman
Es funktioniert irgendwie jetzt. Ohne Änderungen an meinem Code oder am Nexus One. Gespenstisch. haseman: Ich benutze ACCESS_COARSE_LOCATION und ACCESS_FINE_LOCATION, aber ich konnte nicht die von Ihnen empfohlene android.permission.LOCATION in der Dokumentation finden: http://developer.android.com/intl/fr/reference/android/Manifest. permission.html – znq