The code below works perfectly for real devices running on 1.5, 1.6 and 2.0 as well as the emulator running on 2.1.
However, executing it on the Nexus One (running 2.1) raises an IOException:
java.io.IOException: Unable to parse response from server
at android.location.Geocoder.getFromLocation(Geocoder.java:124)
That's the code snippet where it happens:
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;
}
Hi I fell into the same problem and same situation. I got a Nexus One and I got a workaround to make addressList = geocoder.getFromLocation(myLatitude, myLongitude, 1);
work.
You just have to restart your device. What I noticed is that Geocoder's getFromLocation method isn't aware of any change in Locale settings (in my case, what made the method stop working was the change of my default Locale).
After a restart everything worked. Anyone got a reasonably reason for this? (Sorry for the word game :-P )
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With