我正在开发 Android 应用程序,它允许用户输入地址并转换为纬度和经度以供进一步使用。我正在使用以下代码获取纬度和经度
addresses = geocoder.getFromLocationName("11381 zapata ave san diego", 1);
if (addresses.size() > 0) {
double latitude = addresses.get(0).getLatitude();
double longitude = addresses.get(0).getLongitude();
addGeoFence(latitude, longitude);
tlFragmentMap.setLatLong(new LatLng(latitude, longitude));
return true;
} else {
return false;
}
此地理编码器仅在部分手机上运行良好。任何人都可以建议我一种使其适用于所有手机的方法。我不想使用任何 API。我的编译SDK版本是22,minSdkVERsion是14,targetSdkVersion是22
最佳答案
使用 Geocoder 的 isPresent()
方法来确定它是否存在于当前设备上(该服务不存在于核心框架中)。
更多信息可以在 official documentation 中找到
作为备用(或可能是唯一的,因为它保证在所有设备上工作)解决方案,可以使用谷歌的 Geocoding rest API
关于android - Geocoder 不适用于某些 Android 手机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31146775/