位置有时会返回空值

时间:2018-08-01 20:36:06

标签: android

    if (ActivityCompat.checkSelfPermission(super.getContext(), Manifest.permission.ACCESS_FINE_LOCATION)
            != PackageManager.PERMISSION_GRANTED
            && ActivityCompat.checkSelfPermission(super.getContext(), Manifest.permission.ACCESS_COARSE_LOCATION)
            != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(super.getActivity(), new String[]
                {Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION);
    } else {
        Location location = mLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        if (location != null) {
            latitude = String.valueOf(location.getLatitude());
            longitude = String.valueOf(location.getLongitude());

            LogUtils.v(TAG, "Latitude : " + latitude);
            LogUtils.v(TAG, "Longitude : " + longitude);
        }
    }

有时候我会得到值,但是然后我不知道会发生什么使我为空。

1 个答案:

答案 0 :(得分:0)

Android documentation表示Location在以下情况下可以为空:

  • 在设备设置中关闭了位置。结果可能是 即使先前已检索到最后一个位置也为null,因为 禁用位置也会清除缓存。
  • 设备从未记录过其位置,例如 新设备或已恢复出厂的设备 设置。

  • 设备上的Google Play服务已重新启动,并且没有 主动请求位置的融合位置提供者客户端 服务重启后。为了避免这种情况,您可以创建 一个新客户并请求位置更新自己。

相关问题