9

我在使用最新的 Android Geofence API 时遇到了这个问题。用法与示例用法完全相同。我设置Geofence.GEOFENCE_TRANSITION_ENTER了半径为 500m 的类型地理围栏,到期时间为Geofence.NEVER_EXPIRE. 这工作正常,但如果我距离经度约 10 米,并且我设置了地理围栏,它会立即触发。

所以我在这里理解这个词是Geofence.GEOFENCE_TRANSITION_ENTER不是错误的,它不应该只在我们在区域外并进入它时触发,而不是在我们已经在区域内时触发吗?

谢谢。

4

5 回答 5

5

好吧,想想 3D 对象的地理围栏:空间二维,时间一维。在检查之间,如果地理围栏被击中,您的新围栏就会移动到位。

但是,我只是保存添加栅栏的时间戳,然后在几秒钟内忽略所有命中。

于 2013-09-02T02:21:55.537 回答
4

如果您有以下设置,如果您在围栏内,地理围栏将在创建后立即触发。

builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER);

但是,这也是默认设置,因此触发仍会发生。将触发器设置为 INITIAL_TRIGGER_DWELL 确实会阻止初始触发器触发它似乎:

一个标志,指示地理围栏服务应在添加地理围栏时触发 GEOFENCE_TRANSITION_DWELL 通知,并且如果设备已经在该地理围栏内一段时间。

我的测试设备已经在同一个位置放置了一个多小时,但这并没有触发那个地理围栏。

于 2016-02-26T15:03:23.550 回答
3

抱歉,如果我要恢复一个旧问题,但由于我在找到正确答案之前使用了这个答案,所以我将把它留在这里。

GeofencingRequest.Builder 包含应该解决此问题的方法 (setInitialTrigger)。

https://developers.google.com/android/reference/com/google/android/gms/location/GeofencingRequest.Builder.html#setInitialTrigger%28int%29

于 2015-09-22T20:35:18.067 回答
1

地理围栏不会仅在越过边界时触发。当您在栅栏内的任何地方被检测到并且没有发送之前的进入事件时,它们就会被触发。

另请注意,当您在其中更新地理围栏(再次添加具有相同 ID 的地理围栏)时,您将收到另一个进入事件,因为它在更新时清除了地理围栏的状态。

于 2014-01-10T07:49:57.663 回答
0

这可能会有所帮助:https ://developers.google.com/events/io/sessions/325337477 在演示幻灯片(页面底部的链接)中,GPS 的精度约为 10 米。

于 2013-07-02T01:42:45.840 回答