如何为所有 uuid 调用一次 didRangeBeaconsInRegion

How to make didRangeBeaconsInRegion call once for all the uuid

我的问题

我现在需要为每个 uuid 对 didRangeBeaconsInRegion 上的所有区域进行组合调用 例如: 如果我有 2 个 uuid didRangeBeaconsInRegion 被调用 2 次,对于 4 个 uuid didRangeBeaconsInRegion 被调用 4 次,同样它继续进行。我希望为我在 region

上设置的所有 uuid 调用一次 didRangeBeaconsInRegion

我的代码:

 for (beaconparser.Beacon beacon : iBeacon.getBeacons()) {
      try {
           Identifier uuid = Identifier.parse(iBeacon.getUUID());
           Identifier major = Identifier.parse("" + iBeacon.getMajor());
           Identifier minor = Identifier.parse("" + iBeacon.getMinor());
           beaconManager.startRangingBeaconsInRegion(new Region(iBeacon.getUUID() + major + minor, uuid, null, null));
           setMonitoring(false);
      } catch (RemoteException e) {
           e.printStackTrace();
      }
 }

抱歉,API 不能那样工作。最简单的解决方案是设置一个通配符区域,将所有标识符设置为空。这将为您提供所有信标的回调。

您可以使用 if 语句将信标标识符与您关心的标识符进行比较,并且仅当它们与您的区域之一匹配时才处理它们。