【问题标题】:Android beacon library - multiple regions monitoringAndroid 信标库 - 多区域监控
【发布时间】:2017-05-13 03:44:48
【问题描述】:

我使用 Android 信标库,所以我需要一些帮助:

如果我理解正确,我们必须只有一个 RegionBootstrap。 为什么?是否有可能有 RegionBootstraps 列表?

我试图实现它并且它工作正常。这种方法会带来什么困难?

替换我的逻辑将是一个具有多个区域的 RegionBootstrap,但是我无法从中删除所有区域。为什么作者跳过添加?

我有访客模式和用户模式,每个模式都有不同的区域,所以我需要在适当的时候改变它们。什么方法是最好的? 一个区域引导具有多个区域?还是多个 RegionBootstrap?

谢谢

更新:我向 regionBootstrap 添加了 4 个区域,我能够找到输入的区域。之后,我删除了这 4 个区域并设置了 2 个新区域,但设备仍然找到之前设置的 4 个区域之一。 这怎么可能?

【问题讨论】:

    标签: android ibeacon ibeacon-android


    【解决方案1】:

    一些提示:

    • RegionBootstrap 设计为每个应用程序一个实例。只使用一个,并且只构建一次。

    • 如果你想监控多个区域,你可以使用这个构造函数:RegionBootstrap(BootstrapNotifier application, List<Region> regions) e.g. new RegionBootstrap(this, regions);

    • 如果你想改变你的RegionBootstrap在你构建一个区域后监控的区域,不要创建一个新的RegionBootstrap。只需使用:

      BeaconMananager beaconManager = BeaconManager.getInstanceForApplication(this); // Stop monitoring old region beaconManager.stopMonitoringBeaconsInRegion(oldRegion); // Start monitoring new region beaconManager.startMonitoringBeaconsInRegion(newRegion);

    【讨论】:

    • 好的,谢谢,我已经读过这个,但是我在构建 RegionBootstrap 时没有区域。因此,我创建了虚拟区域,但我无法停止监视它。 StopMonitoringBeaconInRegion 不起作用..或者至少 getMonitoredRegions () 不起作用。它总是返回 1,即使在停止之后也是如此。
    • 是否可以添加空的 RegionBootstrap,在 beaconManager 设置区域之前它什么都不做?
    • 如果我必须使用beaconManager来更改监控区域,那么RegionBootstrap中的addRegion和removeRegion的目的是什么?
    • 如果您不想在启动时监控任何区域,您可以将一个空的区域列表传递给采用List<Region> regions 参数的构造函数。 RegionBootstrap 上的 addRegionremoveRegion 方法与 BeaconManager 上的调用非常相似,但具有在某些竞争条件下防止异常的优势。使用RegionBootstrap 上的方法是一个更好的主意。最后,停止监控时,在Region 对象中传递与开始监控相同的字符串标识符至关重要,否则它不会停止。
    • 好吧,你说的我都测试过了,停止监控后,监控区域数为0,但还是找到了门。测距区域数不为空。我也应该停止测距吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-07
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多