如何在用户居住在地理围栏时每隔5分钟触发Android Geofence.GEOFENCE_TRANSITION_DWELL

问题描述 投票:1回答:1

我尝试将初始触发器设置为INITIAL_TRIGGER_ENTER以及INITIAL_TRIGGER_DWELL。无论我设置哪个,该触发器将被调用一次,我得到一个通知。

private GeofencingRequest getGeofencingRequest() {
    GeofencingRequest.Builder builder = new GeofencingRequest.Builder();
    builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER);
    builder.addGeofences(mGeofenceList);
    return builder.build();
}

我还添加了setLoiteringDelay(5000)5秒延迟。根据文件 -

设置GEOFENCE_TRANSITION_ENTER和GEOFENCE_TRANSITION_DWELLING之间的延迟(以毫秒为单位)。例如,如果游荡延迟设置为300000毫秒(即5分钟),地理围栏服务将在用户输入地理围栏后大约5分钟发送GEOFENCE_TRANSITION_DWELL警报,如果用户在这段时间内停留在地理围栏内。如果用户在这段时间内退出地理围栏,则不会发送GEOFENCE_TRANSITION_DWELL警报。

纠正我,如果我错了,根据我的理解设置,这应该每5分钟触发一次。我已设置为5秒,因此应该每5秒触发一次停留事件。我在这里错过了什么吗?请让我知道,谢谢。

更新:

我在网上搜索了几天,但这是我现在能找到的。这可能不是正确的做法,但它做了应该做的事情。

检查我创建的示例项目 - https://github.com/SkyTreasure/am-i-in-the-geofencing

如果有人找到更好的解决方案,请告诉我。

android geolocation geocoding android-location android-geofence
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.