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

        记录下此解决方法;





猜你喜欢

转载自blog.csdn.net/Alin693/article/details/80346883
今日推荐