Android 高德地图在华为手机上获取位置信息失败

昨天遇到一个特别奇怪的bug,华为手机获取高德定位信息失败,调试打印数据后发现

location.getAddress()这个获取值为空,之前一直选择高精度模式,但是获取不到位置信息

//设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。 mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);

就把定位模式换成了使用网络定位(Wi-Fi和基站定位)就可以获取到位置信息

低功耗定位模式:不会使用GPS和其他传感器,只会使用网络定位(Wi-Fi和基站定位);

Java


//设置定位模式为AMapLocationMode.Battery_Saving,低功耗模式。
mLocationOption.setLocationMode(AMapLocationMode.Battery_Saving);

这个目前只有在华为手机上出现过,记录一下,华为的GPS还是不行啊

AMapLocationClientOption对象用来设置发起定位的模式和相关参数。

Java


//声明AMapLocationClientOption对象
public AMapLocationClientOption mLocationOption = null;
//初始化AMapLocationClientOption对象
mLocationOption = new AMapLocationClientOption();

选择定位场景

说明:该部分功能从定位SDK v3.7.0开始提供。如果开发者选择了对应的定位场景,那么则不用自行设置AMapLocationClientOption中的其他参数,SDK会根据选择的场景自行定制option参数的值,当然开发者也可以在基础上进行自行设置。实际按最后一次设置的参数值生效。

目前支持3种定位场景的设置:签到、出行、运动。默认无场景。

Java

AMapLocationClientOption option = new AMapLocationClientOption();
    /**
     * 设置定位场景,目前支持三种场景(签到、出行、运动,默认无场景)
     */
    option.setLocationPurpose(AMapLocationClientOption.AMapLocationPurpose.SignIn);
    if(null != locationClient){
      locationClient.setLocationOption(option);
      //设置场景模式后最好调用一次stop,再调用start以保证场景模式生效
      locationClient.stopLocation();
      locationClient.startLocation();
    }

选择定位模式

高德定位服务包含GPS和网络定位(Wi-Fi和基站定位)两种能力。定位SDK将GPS、网络定位能力进行了封装,以三种定位模式对外开放,SDK默认选择使用高精度定位模式。

高精度定位模式:会同时使用网络定位和GPS定位,优先返回最高精度的定位结果,以及对应的地址描述信息。

Java


//设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。
mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);

低功耗定位模式:不会使用GPS和其他传感器,只会使用网络定位(Wi-Fi和基站定位);

Java


//设置定位模式为AMapLocationMode.Battery_Saving,低功耗模式。
mLocationOption.setLocationMode(AMapLocationMode.Battery_Saving);

仅用设备定位模式:不需要连接网络,只使用GPS进行定位,这种模式下不支持室内环境的定位,需要在室外环境下才可以成功定位。注意,自 v2.9.0 版本之后,仅设备定位模式下支持返回地址描述信息。

Java


//设置定位模式为AMapLocationMode.Device_Sensors,仅设备模式。
mLocationOption.setLocationMode(AMapLocationMode.Device_Sensors);
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值