监控多个信标区域不起作用,开发人员已经说过可能吗?思考? (见我的代码)

时间:2014-01-23 20:40:14

标签: ios ios7 cllocationmanager ibeacon clregion

这是我的代码:

    // Initialize and monitor regions
    for (NSString *serviceUUID in _serviceUUIDs) {
        // Initialize region
        NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:serviceUUID];
        CLBeaconRegion *appBeaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid identifier:SERVICE_IDENTIFIER];
        // Specify notifications
        appBeaconRegion.notifyEntryStateOnDisplay = YES;
        appBeaconRegion.notifyOnEntry = YES;
        appBeaconRegion.notifyOnExit = YES;
        // Add to regions
        [_appBeaconRegions addObject:appBeaconRegion];
        // Begin monitoring region and ranging beacons
        [_locationManager startMonitoringForRegion:appBeaconRegion];
        [_locationManager startRangingBeaconsInRegion:appBeaconRegion];
    }

为了澄清,“_ serviceUUIDs”是NSStrings的NSArray,包含五个UUID。我正在使用Locate iBeacons进行测试,并发现要添加的最后一个区域是唯一被检测到的区域。它似乎也是唯一被监控的人。我通过检查“_ locationManager.monitoredRegions”确定了这一点。

这里有许多线程说可以监控多个信标区域。有谁想过为什么它不适合我?谢谢!

1 个答案:

答案 0 :(得分:13)

可以监控多个区域,但每个区域必须具有唯一的identifier。看起来你为每个区域传递了相同的常量SERVICE_IDENTIFIER。尝试将其设置为每个值的唯一值。