每5秒安卓一次更新位置

时间:2014-06-18 13:20:03

标签: android google-maps android-location

嗨我希望每5秒钟获得一次用户位置,用户可以更改持续时间,如10秒,15秒到30秒我有微调器选择此选项

这是我的要求

 private static final LocationRequest REQUEST = LocationRequest.create()
        .setInterval(5000) // 5 seconds
        .setFastestInterval(16) // 16ms = 60fps
        .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

这是启动我的开始更新

 private void startPeriodicUpdates(int intervel) {
    stopPeriodicUpdates();
    REQUEST.setInterval(intervel);
    mLocationClient.requestLocationUpdates(REQUEST, this);
    // mConnectionState.setText(R.string.location_requested);
}

我可以将用户选择的间隔传递给startPeriodicUpdates()方法,如startPeriodicUpdates(5000),startPeriodicUpdates(15000)。但他们的位置更新持续时间工作正常15秒和超过15秒 如果我给出5秒或10秒,则位置更新每秒运行

06-18 18:46:23.638: I/Location(2860): Location Changed Location[fused 65.966697,-18.533300 acc=4 et=+1h0m13s881ms alt=15.044444]
06-18 18:46:24.642: I/Location(2860): Location Changed Location[fused   65.966697,-18.533300 acc=4 et=+1h0m14s883ms alt=15.044444]
06-18 18:46:25.642: I/Location(2860): Location Changed Location[fused 65.966697,-18.533300 acc=4 et=+1h0m15s883ms alt=15.044444]

日志显示时间间隔为23,24,25请提出您的想法。

1 个答案:

答案 0 :(得分:1)

setInterval方法并不准确。 This is mentioned in the documentation.

此外,对setFastestIntervalsetInterval使用相同的时间间隔可以防止您的应用以比setInterval中指定的时间间隔更快的速度接收位置更新。

只需将REQUEST.setFastestInterval(intervel);添加到您的startPeriodicUpdates方法。