我正在使用带有 AltBeacon 库的Android。 我开始开发一个BLE应用程序,该应用程序应告诉我信标何时进入以及何时退出区域内的范围以便我可以开始行动。
我可以检测到信标何时进入某个区域并确定其范围。因此我使用了 didRangeBeaconsInRegion 方法。
我现在的问题是如何检测到该区域内的信标已离开/退出该范围?我在lib中找不到任何东西。
我怎样才能做到这一点?
答案 0 :(得分:1)
Android Beacon Library提供了用于查找信标的API集:
测试API。这些信息会让您回调didRangeBeaconsInRegion
大约每一秒感兴趣的信标都在范围内,并提供所有这些信标的列表,以便您检查其标识符。
监控API。只有当感兴趣的信标显示为didEnterRegion
或消失didExitRegion
时,它们才会提供回调。
您的问题表明您目前已实施了测距API,并且需要实施监控API以了解所有感兴趣的信标何时消失。
您可以在本页顶部的Monitoring Example Code部分查看此示例。
编辑:请注意,您可以根据各个信标监控区域,并动态更改正在监控的区域。因此,在范围回调中,您可以执行以下操作:
Region singleBeaconRegion = new Region(beacon.toString(), beacon.getIdentifiers());
beaconManager.startMonitoringBeaconsInRegion(singleBeaconRegion);
这将开始监视与传递的标识符匹配的单个信标。当didExitRegion
不再可见时,您将收到回调。
如果您使用此技术,您还应该在退出时停止监控该区域,因此您的受监控区域列表不会随着时间的推移而变大:
public void didExitRegion(Region region) {
// perform logic based on region here
beaconManager.stopMonitoringBeaconsInRegion(region);
}