我真的不理解setInitialTrigger
课上的GeofencingRequest
功能。
我知道我们可以创建一些Geofence
个不同过渡的对象:
这对我来说没问题且可以接受。
现在,我的问题与班级GeofencingRequest
相关,更确切地说是方法setInitialTrigger
。
我真的不明白我们应该把它放在那里的价值......
Android文档(here)对于该方法的含义并不是非常有用。
想象一下,我有这段代码:
private GeofencingRequest getGeofencingRequest() {
GeofencingRequest.Builder builder = new GeofencingRequest.Builder();
builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER);
builder.addGeofences(mGeofenceList);
return builder.build();
}
GeofencingRequest.INITIAL_TRIGGER_ENTER
是什么意思?
对我而言,这意味着,GeofencingRequest
应触发任何具有 ENTER 转换的Geofence
对象。
但是想象一下,我有多个Geofence,具有不同的行为ENTER或EXIT过渡。
我应该如何处理/实施GeofencingRequest Builder?
答案 0 :(得分:7)
builder.setInitialTrigge设置添加地理围栏时的地理围栏通知行为。
您可以使用3个常量:
public static final int INITIAL_TRIGGER_DWELL
一个标志,指示地理围栏服务应在添加地理围栏时触发GEOFENCE_TRANSITION_DWELL通知,并且设备已经在该地理围栏中已有一段时间。
常数值:4
public static final int INITIAL_TRIGGER_ENTER
一个标志,指示地理围栏服务应在添加地理围栏时触发GEOFENCE_TRANSITION_ENTER通知,以及设备是否已在该地理围栏中。
常数值:1
public static final int INITIAL_TRIGGER_EXIT
一个标志,指示地理围栏服务应在添加地理围栏时触发GEOFENCE_TRANSITION_EXIT通知,以及设备是否已经在地理围栏之外。
常数:2
GeofencingRequest.INITIAL_TRIGGER_ENTER是什么意思? 在添加地理围栏并且设备已经在地理围栏中时,应该触发地理围栏服务。
检查区别是时间:
DWELL =已经在地理围栏中存在了一段时间。
ENTER =已经在地理围栏中。
EXIT =已经超出地理围栏。
答案 1 :(得分:1)
您可以使用
`public GeofencingRequest getGeofencingRequest(Geofence geofence){
return new GeofencingRequest.Builder()
.addGeofence(geofence)
.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_DWELL|
GeofencingRequest.INITIAL_TRIGGER_ENTER|
GeofencingRequest.INITIAL_TRIGGER_EXIT)
.build();
}`
当GeofenceRequest
,ENTER
,DWELL
中的任何一个发生时,此功能将触发EXIT