gpt4 book ai didi

Android Fused Location 不会提供定期更新

转载 作者:搜寻专家 更新时间:2023-11-01 09:40:51 26 4
gpt4 key购买 nike

我想每隔特定的几分钟进行一次硬定位,每隔一定的几分钟进行一次软定位,如果用户移动的距离超过某些米。我一直在用下面的一段代码步行测试逻辑(在驾驶时也尝试使用更大的参数)但它并没有真正返回我定期的位置修复。它会在请求开始时立即返回一个位置修复,然后有时会在几分钟后返回 1 个位置修复,但随后最多一个小时它不会返回位置修复。

LocationRequest locationRequest = LocationRequest.create();
int priority = PRIORITY_BALANCED_POWER_ACCURACY;
locationRequest.setPriority(priority);
locationRequest.setInterval(localInterval); //set to 6 minutes
locationRequest.setFastestInterval(localFastestInterval); //set to 3 minutes
locationRequest.setSmallestDisplacement(smallestDisplacement); //set to 10 meters
locationRequest.setNumUpdates(numUpdates); //set to Int.MAX_VALUE
locationRequest.setExpirationDuration(expirationDuration); // set to Long.MAX_VALUE
LocationServices.FusedLocationApi.requestLocationUpdates(locationClient, locationRequest, pendingIntent);

如果我将位移设置为 0,那么我会定期更新位置。知道发生了什么事吗?

最佳答案

经过长时间详尽的测试和实验,我发现如果您不调用 setFastestInterval,您将根据 setInterval 设置的时间间隔获得定期更新。

但是,由于其他应用程序可能会导致位置修正非常快地传送给您,因此只需检查是否忽略传送速度快于特定时间阈值的位置修正。

根据文档:如果 setFastestInterval(long) 设置得比 setInterval(long) 慢,那么您的有效最快间隔是 setInterval(long) 但这并没有发生:例如设置以下参数应该每 1 分钟为您提供一次硬定位,但它不会(至少在 Marshmallow 上):

interval = 1 min
fastestInterval = 20 min
displacement = 0

如果有人能用一段代码来反驳我的发现,那就太好了。

关于Android Fused Location 不会提供定期更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39932475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com