【发布时间】:2016-05-03 01:36:28
【问题描述】:
我无法理解 Android 的地理围栏。
实际问题:我使用了来自 google 的 geofence-api 的 Enter+Exit 事件,但在许多设备上,信号非常不准确,以至于它跳进跳出围栏(跳跃更大通常比半径 400m)。
计划中的解决方案:所以我想使用Dwell 来“平滑”这个。如果该位置在栅栏内停留一分钟,就会发生停留。到目前为止,一切都很好。但是我如何检测栅栏的离开呢?当我使用Exit 时,由于这些信号跳跃,可能会发生几个Exit。当我离开地理围栏超过一分钟时,我需要的是一种“放松”。
我想避免使用在快速重复的地理位置上注册并过滤掉小的异常值的自定义逻辑重新实现整个地理围栏。
问题:geofence-api 中有什么东西可以实现“放松”吗?或者是否有最佳实践来检查Exit 是否是真正的退出?
【问题讨论】:
-
嘿,这对你来说是怎么回事@Jens?
-
因为对我的问题有很多投票,但对答案/建议几乎没有投票,我认为不存在开箱即用的东西或最佳实践。我目前正在做的是使用 2 种方法:一种是实现 'undwell',这意味着:在退出时我开始定期位置更新并收到 3 个位置更新。如果所有 3 个仍然在外面,我接受它作为一个真正的出口,然后,删除监听器。第二个实验是我自己用 locationUpdates 围起来,自己也做平滑(使用 3 个,甚至 5 个位置,忽略异常值)。
-
只是想知道您是否曾经设法找到解决此问题的方法,因为我目前也遇到此问题,非常感谢您的帮助。
-
是的,我坚持我对你的最后评论的建议。我自己在 EXIT 事件后进行了简单的位置更新,并自行决定我是否真的在外面足够长,但您还需要了解所有其他影响,例如用户可能再次快速进入围栏等。跨度>
标签: java android android-geofence