Reputation: 44973
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;
}
Upvotes: 6
Views: 4106
Reputation: 1105
I'm using a HTC Tmobile G2, and I had the same problem while testing a GeoCoder based feature. A reboot helped, but that's not an acceptable solution when my customers start complaining about this. If this is some kind of cache clearing issue, then I hope a workaround can be put in place programmatically.
Upvotes: 0
Reputation: 21
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 )
Upvotes: 1