监控一系列信标

时间:2014-10-14 16:51:01

标签: android estimote

我想使用Estimote监控一系列信标。例如,让我们说(" rid"," uuid",)标识一系列信标,我的应用程序使用的所有信标共享相同的" rid"和" uuid"。我也有很多品牌,每个品牌都有不止一家商店。

这个应用程序将出售给许多品牌,我想使用这样的东西:

private static final Region ALL_STORES_REGION = new Region("rid", "uuid", BRAND_ID, null);
beaconManager.startMonitoring(ALL_STORES_REGION);

然后,当客户退出某个商店时接收通知:

beaconManager.setMonitoringListener(new BeaconManager.MonitoringListener() {
        @Override
        public void onEnteredRegion(Region region, List<Beacon> beacons) {
            // do nothing
        }

        @Override
        public void onExitedRegion(Region region) {
            listener.onCustomerLeaving(region.getMinor());
        }
    });

这就是我现在正在使用的,它的工作正常。问题是因为我使用null作为Region中的最后一个值(为了捕获该品牌的任何商店),onEnteredRegion方法返回的区域返回null,我无法识别特定的商店。

我想到了两种可能的解决方案:  保存信标列表将在输入时返回,并在客户离开时检索商店的ID。 (如果范围内有多个信标,这可能很危险)

或者,使用商店ID监控多个特定区域。 (这将涉及了解所有商店ID,所以再次不是理想的解决方案)

如果有任何方法可以获得触发onExitedRegion方法的实际Beacon或任何其他更好的解决方案,我就会徘徊。

谢谢!

1 个答案:

答案 0 :(得分:1)

您有两种选择:

  1. 收到onEnteredRegion回调时开始测距。从范围内你可以找到你周围的信标,这样你就可以识别商店/品牌。

  2. 查看onEnteredRegion中的第二个参数(beacon)。根据{{​​3}}:

  3. beacons - List of beacons that triggered onEnteredRegion event. This list may not reflect all beacons around that are matching given region.

    您可以使用此信息来识别商店/品牌。