在区域内检测到多个信标时,
如何找到哪一个是最新检测到的?
同样在信标存在的情况下,我怎么知道特定的信标已离开该区域。
答案 0 :(得分:2)
解决此问题的典型方法是组合信标监控和信标范围。
您使用信标范围来读取各个标识符,并保留以前看过的信标的地图,如下所示:
private HashSet<Beacon> beaconsSeen = new HashSet<Beacon>();
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {]
for (Beacon beacon : beacons) {
if (!beaconsSeen.contains(beacon)) {
beaconsSeen.add(beacon);
// Perform your logic here
}
}
}
由于您希望在该区域中的所有信标消失后稍后重新发现信标时再次触发逻辑,您必须清除区域出口上的地图:
@Override
public void didExitRegion(Region region) {
beaconsSeen.clear();
}