当使用简单的应用程序测试以测试信标区域监视时,我似乎得到非常不一致的结果,具体取决于设备(不是设备型号,特定设备).问题是我之后没有收到该CLRegionStateInside地区的状态,requestStateForRegion并且didEnterRegion在这些设备上根本没有被调用.startRangingBeaconsinRegion:工作正常,但为了节省电源和处理,建议只didEnterRegion在调用:方法时启动范围.我测试了6台设备,它工作在半对他们(iPhone 5的)和一个iPhone 5,一个简化版,工作5S和一个4S.
我使用的kontakt.io信标是信标.
这是设置区域监控的代码
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:BEACON_UUID];
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid
identifier:@"regionIdentifier"];
region.notifyOnEntry = YES;
region.notifyOnExit = YES;
region.notifyEntryStateOnDisplay = YES;
[self.locationManager startMonitoringForRegion:region];
[self.locationManager requestStateForRegion:region];
//If I enable this line, ranging starts on all devices
// [self.locationManager startRangingBeaconsInRegion:region];
Run Code Online (Sandbox Code Playgroud)