Android / Nexus 7在使用Geocoder.getFromLocationName()时抛出IOException异常

3

我正在尝试使用Geocoder.getFromLocationName()方法,尽管在以下实际设备上相同的搜索字符串可以正常工作:

  • Nexus 1 (2.3.6)
  • Samsung Galaxy SIII (4.0.4)
  • Galaxy Nexus (4.1.1)

但在我的Nexus 7(4.1.1)上,该方法会抛出“Service not available” IOException异常。

以下是简化代码:

Geocoder geocoder = new Geocoder(mContext);
List<Address> addressFromSearch = geocoder.getFromLocationName("10918", 1);

我也尝试了使用移动数据和仅wifi连接的每个设备,它们都可以正常工作。到目前为止,唯一不能工作的设备/操作系统是Nexus 7。我还检查了Geocoder.isPresent() -- 它返回true。

你有什么想法吗?可能我错过了什么?

2个回答

1

在Galaxy Nexus进行OTA更新至4.1.2之后,这个问题终于得到解决。这是与Android版本4.1.1相关的一个漏洞。


嗨,马丁 - 谢谢你。虽然最初似乎与4.1.1有关,但我们上周推出了应用程序,并发现10-15%的地理编码器调用会回退到Google Map API(当地理编码器无法返回地址时会出现此行为)。您确定这只是在4.1.1上而不是后端问题吗? - bkurzius
我也遇到了同样的问题,我的Galaxy SIII 4G运行的是4.1.1版本。(异常错误信息为“服务不可用”,Geocoder的isPresent函数返回true。如果您想投票支持此问题,请访问以下链接http://code.google.com/p/android/issues/detail?id=38009#makechanges...) - Mel
嗨bkurzius,欢迎。我在三个不同的设备上测试了这种奇怪的行为。首先是一个运行2.3.3的旧智能手机,然后是我的Galaxy Tab,运行3.1,最后是我的Galaxy Nexus 4.1.1。我只期望在Android版本4.1.1上出现此问题,在我更新到Galaxy Nexus的新版本4.1.2之后,问题最终自行解决了。因此,我99%确定这是一个4.1.1的错误。您提到的10-15%的Geocoder回退仅涉及Android 4.1.1版本吗? - Martin
Galaxy S3目前运行的是Android 4.1.1。这些设备相当多。难以置信! - Rodja

0

我在三星Galaxy Tab 2 Android 4.0.4上也遇到了这个问题,我将查看是否有更新,但肯定会支持此问题。

看起来对于我的设备有一个解决方法!

如果您在三星Galaxy Tab 2上重新启动设备...它实际上开始工作了!...这就是我所谓的解决方法!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接