首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android融合定位不会提供定期更新

Android融合定位不会提供定期更新
EN

Stack Overflow用户
提问于 2016-10-08 12:41:12
回答 1查看 1.7K关注 0票数 5

我想得到一个硬位置修复每一特定分钟&一个软位置修复每隔一分钟,如果用户移动了更多,然后特定的仪表。我一直在用下面的代码遍历来测试逻辑(在驾驶时也尝试使用更大的参数),但它实际上并没有返回定期的位置修复。它将在请求启动时立即返回一个位置修复,然后在几分钟后返回一个位置修复,但直到一个小时,它将不会返回一个位置修复。

代码语言:javascript
复制
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,则会得到周期性的位置更新。知道怎么回事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-14 20:04:49

经过长时间的详尽测试和实验,我发现如果不调用setFastestInterval,您将完全按照setInterval设置的时间间隔进行定期更新。

但是,由于其他应用程序可以使位置修复非常快地交付给您,所以只需检查是否忽略了所传递的位置补丁,其速度快于所通过的某个阈值。

根据文档:如果setFastestInterval(long)设置的速度比setInterval(long)__慢,那么有效的最快间隔是setInterval(长),但这不会发生:例如,设置以下参数可以使您每1分钟修复一次硬位置,但它没有(至少在Marshmallow上):

代码语言:javascript
复制
interval = 1 min
fastestInterval = 20 min
displacement = 0

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39932475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档