Geofencing API触发器在已经在区域中时input事件

我遇到了最新的Android Geofence API的这个问题。 用法与示例用法完全相同。 我设置了500米半径的Geofence.GEOFENCE_TRANSITION_ENTERtypes地理栅栏,截止date为Geofence.NEVER_EXPIRE 。 这工作正常,但如果我约10米经纬度,我设置geofence,立即触发。

那么我是否理解了Geofence.GEOFENCE_TRANSITION_ENTER这个词在这里是错误的,不应该只在我们在区域之外并且input时触发,而不是在我们已经在区域中时触发了吗?

谢谢。

Solutions Collecting From Web of "Geofencing API触发器在已经在区域中时input事件"

那么,请考虑三维物体的地理空间:空间中的二维,时间上的一维。 在支票之间,如果一个地理围栏被击中,你的新围栏就会移动到位。

不过,我只是保存添加栅栏的时间戳,并在几秒钟之内忽略所有的命中。

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

 builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER); 

但是,这也是默认的,所以触发器仍然会发生。 将触发器设置为INITIAL_TRIGGER_DWELL确实会阻止初始触发器发射:

一个标志表明地理围栏服务应该在添加地理围栏的时刻触发GEOFENCE_TRANSITION_DWELL通知,并且该设备已经在地理围栏内已经存在一段时间了。

我的testing设备已经在同一个位置超过了一个小时,并没有触发该地理栅栏。

对不起,如果我正在回答一个老问题,但是因为我在find正确的答案之前使用了这个答案,所以我将把它留在这里。

GeofencingRequest.Builder包含一个方法(setInitialTrigger),可以解决这个问题。

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

地理栅栏在跨越边界时不会完全触发。 当你在围栏内的任何地方被检测到时,它们被触发,并且没有以前的进入事件被发送。

另外请注意,在更新地理围栏时,如果在其内部更新了地理围栏(再次添加相同的地理围栏),则会在更新时清除地理围栏的状态,从而获得另一个入口事件。

这可能有所帮助: https : //developers.google.com/events/io/sessions/325337477在演示文稿幻灯片(链接在页面底部),GPS的准确性是~10米。