如果在LocationRequest中未设置时间间隔,则onLocationChanged无法正常工作

时间:2017-05-11 13:05:18

标签: android location android-googleapiclient

当我在LocationRequest设置时间间隔时,位置变得完美 使用此代码

private static final long INTERVAL = 500 * 1;
private static final long FASTEST_INTERVAL = 500 * 1;
private static final int SMALLEST_DISPLACEMENT = 5;

protected void createLocationRequest() {
    LocationRequest mLocationRequest = new LocationRequest();
    mLocationRequest.setInterval(INTERVAL);
    mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
    mLocationRequest.setSmallestDisplacement(SMALLEST_DISPLACEMENT);
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}

但是当我删除这些行然后onLocationChanged无效。是否需要在LocationRequest中设置时间间隔?

 mLocationRequest.setInterval(INTERVAL);
 mLocationRequest.setFastestInterval(FASTEST_INTERVAL);

我想根据时间间隔根据位移得到位置。

1 个答案:

答案 0 :(得分:0)

它也让我感到惊讶,如果我错误地解释,请有人纠正我。

来自LocationRequest源代码;

private long mInterval = 60 * 60 * 1000;   // 60 minutes
private long mFastestInterval = (long)(mInterval / FASTEST_INTERVAL_FACTOR);  // 10 minutes

如果您未设置setIntervalsetFastestInterval,则会保留默认值。

因此,当您只设置mLocationRequest.setSmallestDisplacement(...);

然后,融合提供者会考虑像

这样的值

间隔时间:60分钟,最快时间间隔:10分钟,最小位移:5米

结果,它看起来像“不工作”