2

新しい 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 プロバイダーの使用を強制する方法はありますか?

4

1 に答える 1

3

LocationClient に GPS プロバイダーの使用を強制する方法はありますか?

いいえ、ポイントはLocationClient複数のソース (GPS、WiFi、セルタワー、センサーなど) からのデータをブレンドすることです。

速度が必要な場合は、 、または速度をサポートすると書かれているその他のもの(たとえば、Galileo、いつか、多分)を使用LocationManagerして作業します。GPS_PROVIDERCriteria

于 2013-06-21T15:35:32.787 に答える