0

初学者 Estimote 问题:添加多个 Estimote 信标及其各自的主要/次要信标的正确方法是什么,以便可以使用 startRangingBeaconsInRegion 分别检测所有信标?

此代码适用于单个信标:

// Single Beacon Region
ESTBeaconRegion* beaconRegion = [[ESTBeaconRegion alloc] initWithProximityUUID:ESTIMOTE_PROXIMITY_UUID
                                                                    major:11111 minor:11111
                                                                    identifier: @"EstimoteSampleRegion"];
// Start ranging beacons
[self.beaconManager startRangingBeaconsInRegion:beaconRegion];

但是,此代码不适用于多个信标:

// Beacon 1 Region
ESTBeaconRegion* beacon1Region = [[ESTBeaconRegion alloc] initWithProximityUUID:ESTIMOTE_PROXIMITY_UUID
                                                                    major:11111 minor:11111
                                                                    identifier: @"EstimoteSampleRegion"];
// Beacon 2 Region
ESTBeaconRegion* beacon2Region = [[ESTBeaconRegion alloc] initWithProximityUUID:ESTIMOTE_PROXIMITY_UUID
                                                                    major:22222 minor:22222
                                                                    identifier: @"EstimoteSampleRegion"];
// Beacon 3 Region
ESTBeaconRegion* beacon3Region = [[ESTBeaconRegion alloc] initWithProximityUUID:ESTIMOTE_PROXIMITY_UUID
                                                                    major:33333 minor:33333
                                                                    identifier: @"EstimoteSampleRegion"];
// Start ranging beacons
[self.beaconManager startRangingBeaconsInRegion:beacon1Region];
[self.beaconManager startRangingBeaconsInRegion:beacon2Region];
[self.beaconManager startRangingBeaconsInRegion:beacon3Region];

使用此代码仅检测到最后一个信标。(所以在这种情况下,只检测到 beacon3Region)。

——</p>

如果您知道如何使用 ESTBeaconRegion 和 startRangingBeaconsInRegion 添加和检测多个信标,我将不胜感激一个解释如何执行此操作的代码示例。

4

1 回答 1

5

轻松修复!您identifier: @"EstimoteSampleRegion"]必须为所有三个区域使用不同的字符串。

无论是使用 Estimote SDK 还是标准 iOS CoreLocationAPI 都是如此,Estimote SDK 只是一个瘦包装器。 CoreLocation通过使用该字符串标识符作为键来跟踪多个区域。如果您多次使用相同的字符串,您实际上是在告诉CoreLocation用另一个区域替换一个区域。

无耻插件:如果你使用我公司的ProximityKit框架,你根本不需要在代码中管理你的信标区域——你可以在云中动态地这样做。然后,您不再需要担心保持此标识符的唯一性。它也与 Estimote 信标以及所有标准 iBeacon 兼容。

于 2014-03-11T12:59:12.373 回答