其他分享
首页 > 其他分享> > Android-从LocationClient获得的位置不支持速度

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