根据时间间隔或置换

时间:2017-07-03 09:59:18

标签: android location android-gps

我正在使用Fused Location Api来获取位置更新。 当我将x秒设置为时间间隔时,每隔x秒我就会调用onLocationChanged()。 当我将10米设置为最小位置时,则在用户从其原始位置移动10米之前不会调用onLocationChanged()。

但是当x秒过去或覆盖10米距离时,我需要调用onLocationChanged()。

任何想法我都能做到这一点。

我的代码

private Location mLastLocation;
public static final int REQUEST_LOCATION = 1006;
LocationRequest mLocationRequest;
private static final long POLLING_FREQ = 1000 * 10;
private static final long FASTEST_UPDATE_FREQ = 1000 * 10;
private static final long SMALLEST_DISPLACEMENT = 10;

mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        mLocationRequest.setInterval(POLLING_FREQ);
        mLocationRequest.setFastestInterval(FASTEST_UPDATE_FREQ);
        mLocationRequest.setSmallestDisplacement(SMALLEST_DISPLACEMENT);

startLocationUpdates();

1 个答案:

答案 0 :(得分:7)

仅限于置换

  mLocationRequest.setInterval(0);
  mLocationRequest.setFastestInterval(0);
  mLocationRequest.setSmallestDisplacement(SMALLEST_DISPLACEMENT);

仅限间隔

 mLocationRequest.setInterval(POLLING_FREQ);
 mLocationRequest.setFastestInterval(FASTEST_UPDATE_FREQ);
 mLocationRequest.setSmallestDisplacement(0); // Not needed, already default value is 0

通常使用AND计算间隔和距离参数。这意味着当你改变你的位置时,至少SMALLEST_DISPLACEMENT米并且至少已经过了POLLING_FREQ毫秒,那么onLocationChanged()将被触发。