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);
}
}
有时候我会得到值,但是然后我不知道会发生什么使我为空。
答案 0 :(得分:0)
Android documentation表示Location
在以下情况下可以为空:
设备从未记录过其位置,例如 新设备或已恢复出厂的设备 设置。
设备上的Google Play服务已重新启动,并且没有 主动请求位置的融合位置提供者客户端 服务重启后。为了避免这种情况,您可以创建 一个新客户并请求位置更新自己。