在Android中,如何仅在使用邻近UUID创建Region时,如何获取ibeacon详细信息onExitedRegion

时间:2014-05-29 13:57:07

标签: android ibeacon ibeacon-android estimote

我正在使用Estimote信标处理android应用程序。我正在努力研究一个我将使用100多个信标的场景。为此,我不是为每个信标创建单独的Region,而是通过为所有信标分配公共Proximity UUID并通过仅传递Proximity UUID来声明Region来创建单个Region。我保留Major和Minor以便唯一地识别信标。

由于我的应用程序必须在后台,我使用 BeaconManager.MonitoringListener 界面与 onEnteredRegion onExitedRegion 回调(我的理解是测距只有当应用程序在前台时才能完成。)因为,onExitedRegion没有提供任何触发onExitedRegion的信标列表,我怎样才能获得信标详细信息,例如onExitedRegion中的Major,Minor?

2 个答案:

答案 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回调中开始测距。