我已将Geofence建成:
GeofenceModel modelExit = new GeofenceModel.Builder("id_oi_456")
.setTransition(Geofence.GEOFENCE_TRANSITION_DWELL)
.setExpiration(Geofence.NEVER_EXPIRE)
.setLatitude(40.414341)
.setLongitude(49.928548)
.setRadius(CLIENT_GEOFENCE_RADIUS)
.build();
SmartLocation.with(this).geofencing()
.add(modelExit)
.start(this);
设置为NEVER_EXPIRE时,会触发它。如果未设置setExpiration(),则不会触发地理围栏。问题是单个地理围栏的默认到期时间是什么?
答案 0 :(得分:0)
关于Android Geofence
课程:如果没有设置过期,则无法使用Geofence
创建Geofence.Builder
。如果您尝试,它将抛出java.lang.IllegalArgumentException: Expiration not set.
至于你的GeofenceModel
课程,我不确定。
答案 1 :(得分:0)
假设您使用的是com.google.android.gms.location.Geofence 在您的GeofenceModel类下面。
您有一个名为modelExit
的实例变量,它指示您正在等待退出转换。而在地理围栏配置中,您仅在听GEOFENCE_TRANSITION_DWELL
。您应该将转换设置为GEOFENCE_TRANSITION_EXIT
。