Android 获取定位的一些问题

最近在用红米手机进开发桌面小窗口是碰到一直获取不到定位获取当前经纬度,找了问题,一直在报没有定位缓存,原因就是手机上没有以前定位的数据;先来看下代码:

/**
 * GPS获取定位方式
 */
public static Location getGPSLocation(@NonNull Context context) {
    Location location = null;
    LocationManager manager = getLocationManager(context);
    //高版本的权限检查
    if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        return null;
    }
    if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {//是否支持GPS定位
        //获取最后的GPS定位信息,如果是第一次打开,一般会拿不到定位信息,一般可以请求监听,在有效的时间范围可以获取定位信息
        location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    }
    return location;
}

这里重点是manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);为获取上一次定位的数据;那问题来了,我直接用请求监听的方法做了一次定位,可是还是不会获取到;当时检查了手机权限问题,以及系统自带的天气定位功能,也是获取不到的,到这里大家以为是手机的问题了;不过后来申请了高德地图的定位权限,重写了定位方法,就能获取到定位数据了!

        记录下此解决方法;





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值