我正在使用Estimote信标处理android应用程序。我正在努力研究一个我将使用100多个信标的场景。为此,我不是为每个信标创建单独的Region,而是通过为所有信标分配公共Proximity UUID并通过仅传递Proximity UUID来声明Region来创建单个Region。我保留Major和Minor以便唯一地识别信标。
由于我的应用程序必须在后台,我使用 BeaconManager.MonitoringListener 界面与 onEnteredRegion 和 onExitedRegion 回调(我的理解是测距只有当应用程序在前台时才能完成。)因为,onExitedRegion没有提供任何触发onExitedRegion的信标列表,我怎样才能获得信标详细信息,例如onExitedRegion中的Major,Minor?
答案 0 :(得分:1)
编辑:下面提到的图书馆已被Android Beacon Library取代。代码示例可在同一站点上获得。
您没有说明您使用的是哪个库,但开源Android iBeacon Library允许您通过组合范围和监控来实现此目的。该库对在后台使用测距没有限制(与iOS不同)。该库与任何标准iBeacon完全兼容。
尽管库的didExitRegion回调并没有告诉您消失的特定信标,但您可以根据最近的didRangeBeaconsInRegion回调中传递给您的列表来跟踪这些可见信标。这样,当你获得didExitRegion回调时,你知道哪些信标在它们全部消失之前最后一次可见。
范围和监控代码的样本均可用here。
答案 1 :(得分:0)
在Estimote SDK MonitoringListener
中有方法onEnteredRegion(Region region, List<Beacon> beacons)
。其中beacons
是触发onEnteredRegion事件的信标列表。此列表可能无法反映与给定区域匹配的所有信标。
为了获得更准确的信标列表,您需要在onEnteredRegion
回调中开始测距。