首页 文章

监控一系列信标

提问于
浏览
0

我想使用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 回答

  • 1

    您有两种选择:

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

    • 看一下onEnteredRegion中的第二个参数(beacon) . 根据docs

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

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

相关问题