我怎样才能 "refresh" 我的 RegionBootstrap(Android 信标库)?

How can I "refresh" my RegionBootstrap (Android Beacon Library)?

我正在开发一个与信标一起工作的 Android 应用程序(感谢使用 Android 信标库)。我有一个扩展 BootstrapNotifier 的应用程序,它调用一个控制器(我的 class)方法创建一个新的 RegionBootstrap。当应用程序启动时一切正常,并且与相应区域相关的 Beacons 在他们进入或离开该特定区域时触发通知。

public class BackgroundApplication extends Application implements BootstrapNotifier, RangeNotifier {
...
@Override 
public void onCreate() {

    this.controller = Controller.getInstance();

    mAllBeaconsRegion = new Region("all beacons", null, null, null);

    //the following call returns the correct list of regions
    this.regionList = this.controller.getRegionList(this);  

    this.regionList.add(mAllBeaconsRegion);

    this.controller.setBootstrapNotifier(this);
    this.controller.setRegionBootstrap(this.regionList);
    ...

}

这是控制器:

public class Controller {
...
    public void setRegionBootstrap(ArrayList<Region> regionList){

        this.regionBootstrap = new RegionBootstrap(this.bootstrapNotifier, regionList);

    }

    public void setBootstrapNotifier (BootstrapNotifier bn){
        this.bootstrapNotifier = bn;
    }
}

现在,我提供了添加区域的可能性,我想立即检测 Beacon 何时进入或离开该区域。为此,我想我必须简单地重新调用 setRegionBootstrap 方法,传递新的区域列表。 相反,除非我重新启动应用程序,否则我没有进入或离开新区域的通知。 知道如何解决这个问题吗?谢谢

您应该只构造一次 RegionBootstrap。如果你想通过添加新区域来改变监控区域,只需在 BeaconManager 上直接这样做:

beaconManager.startMonitoringBeaconsInRegion(new Region("myMonitoringUniqueId", null, null, null));