在使用地理编码器获取地址时,我在从纬度和经度获取位置地址时遇到问题,它在MarshMallow及以上5种设备中均能正常工作,但在版本5(lollipop)和i中无法正常工作还要在版本5中运行我的代码。感谢您的任何帮助,并在此先感谢
这是我的代码
if (this.geocoder == null) {
this.geocoder = new Geocoder(this, Locale.getDefault());
}
try {
List<Address> addresses = geocoder.getFromLocation(Double.parseDouble(lat), Double.parseDouble(lng), 1);
if (!addresses.isEmpty()) {
address = addresses.get(0).getLocality();
PrefsManager.with(this).save(Constants.PREF_ADDRESS,addresses.get(0).getLocality());
return addresses.get(0).getLocality();
}
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:1)
我已经在Android 5.1版中使用虚拟lat和lng测试了您的代码。一切正常。
这是我的建议,请用断点调试代码。检查地理编码或其他问题吗?请检查是否在权限检查块中找到了MarshMallow版本的位置,而没有进入其他部分(适用于lolipop和其他较低版本)。