让 BeaconManager 监听超过 1 Region/beacon

Make BeaconManager listen for more than 1 Region/beacon

到目前为止,这是我的代码: 此方法遍历我保存在我的数据库中的信标对象列表,并为列表中的每个信标创建一个区域:

 for (nl.hgrams.passenger.model.vehicle.Beacon beacon : beacons) {
            if (beacon.getUser_vehicle() != null) {
                Utils.appendLog("Added a beacon region for: " + beacon.getName(), "I", Constants.TRACKER);
                Region region = new Region("all-beacons-region", Identifier.parse(beacon.getUuid()), null, null);
                regions.add(region);
            }
        }

然后我浏览列表,然后调用 startMonitoringBeaconsInRegion(region):

  try {
        for (Region region : regions) {
            beaconManager.startMonitoringBeaconsInRegion(region);
        }
    } catch (RemoteException e) {
        Log.e("", "region error trying to start ranging beacons in region");
        e.printStackTrace();
    }

但我注意到它只会监听它监控的最后一个区域。 为什么它不听所有的?我怎样才能让它听所有地区? 是否可以将更多的 uuid 传递给一个区域或类似的东西,这将解决这个问题?

编辑:

我试过用这个:

 PSApplicationClass.getInstance().regionBootstrap = new RegionBootstrap(bootstrapNotifier, regions);

使用 RegionBootstrap 和我的应用程序 class 实现 boostrapNotifier。 将它与使用编辑之前的 for 循环代码创建的区域列表一起使用。 但是我调用了 EnteredRegion 一次,然后我就再也没有 EXIT 或 ENTERED 事件了,为什么?

问题出在这里: Region region = new Region("all-beacons-region", Identifier.parse(beacon.getUuid()), null, null); 我正在设置第一个参数。对于所有区域:all-beacons-region 这将导致它们被覆盖。因此为什么只有最后一个被调用