探测信标退出范围



我使用Android与AltBeacon库。我开始开发一个BLE应用程序,它应该告诉我一个信标何时进入,何时退出一个区域内的范围,这样我就可以开始一个动作。

我可以检测到一个信标何时进入一个区域并确定它的范围。因此我使用了didRangeBeaconsInRegion方法。

我的问题是现在如何检测信标已离开/退出该区域的范围?我在lib中找不到任何东西来做这个

我怎样才能做到这一点?

Android Beacon Library提供了一组用于查找信标的api:

  1. api。这些给你一个回调到didRangeBeaconsInRegion,大约每秒感兴趣的信标在范围内,并提供所有这些信标的列表,这样你就可以检查它们的标识符。

  2. 监测api。只有当感兴趣的信标出现didEnterRegion或消失didExitRegion时才提供回调。

你的问题表明你目前已经实现了测距api,并且需要实现监控api来知道所有感兴趣的信标何时消失。

您可以在本页顶部的监视示例代码一节中看到这个示例。

EDIT:请注意,您可以基于单个信标监视区域,并动态更改正在监视的区域。在range回调中你可以这样做:

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);
}

相关内容

  • 没有找到相关文章

最新更新