当在该区域检测到多个信标时,
我怎样才能找到哪一个是最新检测到的?
另外,在信标中,我如何知道特定信标已离开该区域。
解决这个问题的典型方法是结合信标监控和信标测距.
您可以使用信标测距来读取各个标识符,并保留之前见过的信标的地图,如下所示:
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();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)