【发布时间】:2013-06-21 15:30:03
【问题描述】:
我正在使用新的 Google LocationClient 来检索地理位置。而且我需要获得每个点(位置)的速度。
我现在做的是:
if (mLocationClient == null) {
mLocationClient = new LocationClient(this, mLocationCallback, mLocationCallback);
mLocationCallback.setLocationClient(mLocationClient);
if (!(mLocationClient.isConnected() || mLocationClient.isConnecting())) {
mLocationClient.connect();
}
}
mLLocationCallback 是
的一个实例public class LocationCallback implements ConnectionCallbacks,
OnConnectionFailedListener, LocationListener {}
在函数中,
@Override
public void onLocationChanged(Location location) {
if (location == null) {
Log.e(TAG, "onLocationChanged: location == null");
return;
}
Log.i(TAG, "Location@ " + location.getLatitude() + ","
+ location.getLongitude() + ", Altitude: "
+ location.getAltitude() + "(" + location.hasAltitude()
+ ")" + " Velocity: " + location.getSpeed() + " m/s("
+ location.hasSpeed() + ")");
}
}
但是,每次location.hasSpeed() 都会给出false。似乎只有 GPS 提供商提供速度。我确定我的 GPS 已开启,但它可能永远不会被使用。
有没有办法强制 LocationClient 使用 GPS 提供程序?
【问题讨论】:
标签: android gps location location-client