首页 文章

Locale对Android Geocoder的影响

提问于
浏览
1

我正在尝试为客户端远程解决应用程序问题 . 该应用程序创建其Geocoder并查找如下地址:

Geocoder gc = new Geocoder(context, Locale.getDefault());
List<Address> addresses = gc.getFromLocationName(nextWaypoint, 5);

航点是加拿大的街道地址 . 客户端报告该应用程序可以在某些设备上对地址进行地理编码,但无法对其他设备上的相同地址进行地理编码 . 它失败的设备是来自以色列的Android 4.0.3设备 .

我的预感是,以色列设备希望以他们在以色列使用的任何格式提供地址,甚至不会将加拿大地址视为地址 . 这似乎有可能,甚至可能吗?

Edit: 我写了一个测试应用程序,表明我最初的想法是错误的 . 客户端给了我一个示例地址(在美国这个)我编写了一个测试应用程序,它创建了两个具有显式语言环境的地理编码器:一个使用 Locale.US ,另一个使用 new Locale("iw", "IL") . 两者都能够在我的4.4设备上对样本地址进行地理编码 .

根据客户端看到的代码和错误消息, getFromLocationName(...) 必须在以色列4.0.3设备上返回零结果 . 它返回其他设备上相同地址的结果 .

是否已知 Geocoder 在4.0.3中是片状的?

Edit 2: 可能与issue 38009有关 . 但客户报告看到他们只会看到 getFromLocationName(...) 返回一个空列表的吐司,而不是它是否抛出异常 .

1 回答

  • 1

    不幸的是,我没有一个很好的答案,但从我收集到的,这是我认为你应该做的 .

    • 我会仔细检查您是否没有看到用户设备上的Geocode api引发的崩溃或异常 .

    • 如果情况仍然是你只是得到零结果我会做一个谷歌错误票Android Bug Tracker并看看他们说什么 . 我曾经看过有人说过,在发生冲突的地区,他们不会提供服务,但我没有直接从谷歌那里看到任何东西,所以我会明白这一点 .

    说实话,我认为这些实际上是你唯一的两个选项,好像没有崩溃,API没有明确告诉我们为什么他们会给我们零结果 . 如果你创建一张票,请在这里分享,我很想知道谷歌的回应是什么 .

相关问题