Мониторинг региона IBeacon не работает согласованно между устройствами
При тестировании с простым приложением для проверки мониторинга области маяка, я получаю очень противоречивые результаты в зависимости от устройства (не от модели устройства, от конкретного устройства). Проблема в том, что я не получаю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];