我试图使用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