长时间获取子区域为空?

Getting sub locality null for some lat long?

下面是我的代码,我总是得到 null subLocality ....

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses  = geocoder.getFromLocation(latitude,longitude, 1);

String suburb = addresses.get(0).getSubLocality();
String state = addresses.get(0).getAdminArea();
String zip = addresses.get(0).getPostalCode();
String country = addresses.get(0).getCountryName();

Log.e("Log for data",""+suburb+" "+state+" "+zip+" "+country);

以下是我的回复;

null Gujarat 380006 India

Geocoder API 将 return 值取决于 lat long,如果 API 数据库没有这些值例如:subLocality 那么它只会 return null,据我所知,你无能为力。您必须优雅地处理这些情况,这样您的应用才不会崩溃。

处理这些情况包括你必须使用 if 检查条件是特定值是 null 或者它有一些值,因为如果你在代码中的某处使用任何值而没有检查该值是否为 null,则只要该特定值出现 null.

,应用程序可能会崩溃

我也有同样的问题,通过增加您从 Geocoder API 请求的结果数量解决了这个问题。

尝试将其增加到 10

List<Address> addresses  = geocoder.getFromLocation(latitude,longitude, 10);

然后,如果您的分区在 first 结果中为空,请尝试在其余分区中搜索相同的