Android-从LocationClient获得的位置不支持速度
作者:互联网
我正在使用新的Google LocationClient检索地理位置.而且我需要提高每个点(位置)的速度.
我现在正在做的是:
if (mLocationClient == null) {
mLocationClient = new LocationClient(this, mLocationCallback, mLocationCallback);
mLocationCallback.setLocationClient(mLocationClient);
if (!(mLocationClient.isConnected() || mLocationClient.isConnecting())) {
mLocationClient.connect();
}
}
其中mLocationCallback是以下实例
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提供程序?
解决方法:
Is there a way to force LocationClient to use GPS provider?
不可以,因为LocationClient的目的是要融合来自多个来源(GPS,WiFi,手机信号塔,传感器等)的数据.
如果您需要速度,请使用LocationManager并使用GPS_PROVIDER或“条件”中规定的其他任何支持速度的功能(例如,也许有朝一日,伽利略).
标签:android,gps,location,location-client 来源: https://codeday.me/bug/20191011/1896251.html