Android高德地图定位功能,在部分机型定位成功却不返回地址信息处理方案。
最近做了一个关于定位相关的项目,使用的高德地图的API,结果却发生了一些问题,特此记录一下。
华为7.0,vivo8.0,小米8.0,vivo9.0,oppo9.0,红米6.0,全都没有问题。但是却在oppoR9机型出现了定位成功却不返回定位详细地址,网上找了好多方案都不行,最后没办法了想了一招,特此记录。
if (aMapLocation != null && aMapLocation.getErrorCode() == AMapLocation.LOCATION_SUCCESS )
//首先这个判断是没有任何问题的,返回的也是定位成功,并且返回了经纬度。
然后接着往下看
aMapLocation.getAdCode() //发现数据为空
aMapLocation.getPoiName() //发现数据为空
aMapLocation.getCityCode() //发现数据为空
定位成功了却还是没有数据是怎么回事呢?
最后试了很多办法都不行,最后在Demo无意间看到这个地址编码的代码,只好拿出来使用,结果就好了,谁也不知道是怎么回事?有大佬知道的话可以留言告诉我一下。
下面是完整解决问题代码
private GeocodeSearch geocoderSearch =new GeocodeSearch(getmView().getmActivity());
//显示定位完成
if (aMapLocation != null && aMapLocation.getErrorCode() == AMapLocation.LOCATION_SUCCESS ) {
//判断定位完成只给返回经纬度,却不返回定位详细地理信息时
if (EmptyUtils.isEmpty(aMapLocation.getAdCode())){
//根据经纬度去进行查询地理信息
LatLonPoint point =new LatLonPoint(aMapLocation.getLatitude(),aMapLocation.getLongitude());
Regeo