我试图使用android studio获取当前位置,但变量currentLocation始终为空值

和android studio在下面画红线

    位置currentLocation = LocationServices.FusedLocationApi.getLastLocation(mLocationclient);



并要求检查许可
我尝试了两种检查权限的方法
但相同的结果返回空值

请谁能帮助我?
这是我使用的代码


    私有GoogleApiClient mLocationclient;
mLocationclient = new GoogleApiClient.Builder(this)
                    .addApi(LocationServices.API)
                    .addConnectionCallbacks(this)
                    .addOnConnectionFailedListener(this)
                    。建立();
            mLocationclient.connect();

            位置currentLocation = LocationServices.FusedLocationApi.getLastLocation(mLocationclient);
            如果(currentLocation == null)
                Toast.makeText(this,“无法连接”,Toast.LENGTH_SHORT).show();
            其他{
                LatLng ll = new LatLng(
                        currentLocation.getLatitude(),
                        currentLocation.getLongitude()
                );
                CameraUpdate update = CameraUpdateFactory.newLatLngZoom(ll,50);
                mMap.animateCamera(更新);
            }




请帮我。

最佳答案

有几个原因使您成为null。最有可能的是,它没有先前的位置可以拉出。请记住,getLastLocation实际上并不会外出并获得新的位置;它只是抓住了手机的最后一个。您的手机将从各种来源/方法中获取位置数据,这就是所使用的数据。根据我的经验,它通常只有几分钟的时间。

我会:

1)检查您是否未使用SIM卡
2)检查您的GPS是否在手机上正常工作(Google Maps是否正常工作?)
3)尝试强制进行位置更新(LocationManager.requestLocationUpdate(...)为seen here)并从此处进行调试。

我相信只要您还支持SDK

10-08 15:20