我使用此代码获取当前地址:
public String getAdressFromLongLat(double lati, double longi) {
List<Address> addresses = new ArrayList<Address>();
Geocoder geocoder = new Geocoder(mContext,Locale.getDefault());
try {
addresses = geocoder.getFromLocation(lati, longi, 1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
if(addresses==null || addresses.size()<=0) {
return null;
}
String address = addresses.get(0).getAddressLine(0);
String city = addresses.get(0).getAddressLine(1);
return address + "/;/" + city;
}
但它每次都返回null。我没有真正的设备,所以我在genymotion模拟器中测试。这是问题吗?或者代码有问题吗?
- &GT;我使用调试器来查找问题: 地址不为空,但大小为0,为什么? :(
答案 0 :(得分:3)
Genymotion可能不支持地址查找。来自official documentation:
注意:地址查找需要未包含的后端服务 在核心Android框架中。如果这个后端服务不是 可用,Geocoder.getFromLocation()返回一个空列表。该 辅助方法isPresent(),可在API级别9及更高版本中检查 查看后端服务是否可用。
请务必致电Geocoder.isPresent()。