因为公司的老项目需要更新高德地图SDK,老版本地图用的7.1,定位为4.7.2
需要更新到最新版的SDK8.1.0
导入新SDK后基本没啥问题,初始化geocoderSearch = new GeocodeSearch(Context),一顿Try()Catch{},改完-运行,结果app直接白屏闪退,看了一下官方文档,新版本需要加隐私政策直接在Application加一下隐私权限就可以了。高德地图隐私文档 高德官方隐私合规接口说明AMapLocationClient 之前必须进行合规检查,设置接口之前保证隐私政策合规,检查接口如下:
`
AMapLocationClient.updatePrivacyShow(context,true,true);
AMapLocationClient.updatePrivacyAgree(context,true);
添加完后APP正常运行了,正当美滋滋的时候,突然发现定位不显示了,但是打印RegeocodeResult.getRegeocodeAddress是有回调值的,但是PoiItem里就是没有值`
public List<PoiItem> poilist = new ArrayList<PoiItem>();
poilist = regeocodeResult.getRegeocodeAddress().getPois()
这个问题薅了一上午头发也没找到原因
没办法只好提交工单,等了一下午终于回复:
扩展字段 base表示只返回基础数据,all表示所有数据 ,默认 base。问题终于知道了,响应逆地理编码初始化时候设置一下setExtensions(“all”);即可。
`
RegeocodeQuery query = new RegeocodeQuery(latLonPoint, 200,GeocodeSearch.AMAP);
//扩展字段 base表示只返回基础数据,all表示所有数据 ,默认 base,
query.setExtensions("all");
// 设置同步逆地理编码请求
geocoderSearch.getFromLocationAsyn(query);`
设置完成,搞定!