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