如何判断Android设备何时具有Geocoder后端服务?
问题描述:
根据Geocoder documentation,该类将方法提供到可能存在或不存在于设备上的后端服务。如果设备上不存在地址解析器,理论上地理编码请求将不会返回任何结果。然而,由于没有后端地理编码器服务而没有结果,因为位置没有意义,如何区分没有结果?如何判断Android设备何时具有Geocoder后端服务?
我的应用程序已经需要Google Maps API,因此这可能是一个争论点;作为第二个问题,谷歌地图API 总是包括一个Geocoder?
答
严格来说也可以安装其他后端,只是尝试,如果一个地理编码器存在
final Geocoder geocoder = new Geocoder(this);
final String locName = "1600 Amphitheatre Parkway, Mountain View, CA";
try {
final List<Address> list = geocoder.getFromLocationName(locName, 1);
if (! (list == null || list.isEmpty())) {
final Address address = list.get(0);
System.out.println("Geocoder backend present, (lat,lon) = (" + address.getLatitude() + ", " + address.getLongitude() + ")");
}
else {
System.out.println("Geocoder backend not present");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}