Android 4.1 Geocoder.getLocationFromName()抛出IOException:无法通过3G解析来自服务器的响应

时间:2012-10-03 18:07:20

标签: android geolocation geocoding google-geocoder

我在我的Android应用程序中使用Geocoder将字符串解析为地址。以下代码片段通过Wifi正常工作,但不能通过3G。当超过3G时,它会抛出IOException: Unable to parse response from server

在关于此的其他讨论中,一个常见的答案是可能的原因是Geocoder被多次/分钟使用,超过了阈值,并导致服务暂时抛出异常。我相信这不是我的情况,因为我从来没有得到我的新手机(Nexus S,android 4.1)的服务,这是我几周前得到的。

这是片段:

Geocoder gc = new Geocoder(this);
List<Address> newAddresses = gc.getFromLocationName(arg0.toString(), 10);

有什么想法吗?

1 个答案:

答案 0 :(得分:10)

使用google的web api代替使用GeoCoder,你可以对它进行异步api调用,并获得比android地理编码器给你更多信息的json对象。

更好https://developers.google.com/maps/documentation/geocoding/

我在几个Android应用程序中完成了这项工作,这也保证了您可以从跨平台应用程序获得相同类型的结果