我正在使用LocationClient
从网络获取用户位置(无gps)。
我在创建片段期间实例化LocationClient
mLocationClient = new LocationClient(getActivity(), this, this);
mLocationClient.connect();
然后是
if (mLocationClient.isConnected())
{
currentLocation = mLocationClient.getLastLocation();
}
我确信它已连接,但getLastLocation()
始终返回null。
但是,它使用LocationManager
。
LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
currentLocation = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
我知道我可以使用侦听器进行位置更新,但我想了解为什么getLastLocation()
始终返回null。
答案 0 :(得分:1)
文件说: -
public Location getLastLocation ()
返回当前可用的最新位置。如果一个 位置不可用,这应该很少发生,null会 被退回尊重位置时可获得的最佳准确度 权限将被退回。该方法提供了一种简化的方法 得到位置。它特别适合那些应用程序 不需要准确的位置,也不想维护 位置更新的额外逻辑。
您必须使用onLocationChange()
方法获取位置: -
@Override
public void onLocationChanged(final Location location) {
mCurrentLocation = location;
}