В моем приложении я использую мониторинг зоны Beacon в CoreLocation. Приложение устанавливает 2 proximityUUID в качестве региона (у них разные идентификаторы), и начинается в следующем порядке.Ranging Beacons in iOS 10
#pragma mark - CLLocationManagerDelegate
(void)locationManager:(CLLocationManager *)manager
didEnterRegion:(CLRegion *)region {
[self.locationManager requestStateForRegion:(CLBeaconRegion *)region];
}
- (void)locationManager:(CLLocationManager *)manager
didExitRegion:(CLRegion *)region {
[self.locationManager stopRangingBeaconsInRegion:(CLBeaconRegion *)region];
}
- (void)locationManager:(CLLocationManager *)manager
didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region{
for(CLBeacon* b in beacons){
//output only previous beacon if it's before regionout to previous region
NSLog(@"%@",b);
}
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
//error
}
- (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region{
if(state == CLRegionStateInside){
if ([region isMemberOfClass:[CLBeaconRegion class]] && [CLLocationManager isRangingAvailable]){
[self.locationManager startRangingBeaconsInRegion:(CLBeaconRegion *)region];
}
}
}
Он работает в прошивке 8 и 9 прошивки, но он не работает в прошивке 10.
[в прошивке 8/IOS 9]
1.broadcast beacon1
2.[app]didRangeBeacons (beacon1)
3.stop beacon1 and broadcast beacon2
4.[app]didRangeBeacons (beacon2)
[IOS 10]
1.broadcast beacon1
2.[app]didRangeBeacons (beacon1)
3.stop beacon1 and broadcast beacon2
4.[app]didRangeBeacons (**beacon1**)
Это ошибка IOS 10?
В iOS 10 определенная разница с радиомаяками. Я получаю очень непоследовательные результаты с появлением коротких маяков, а затем никогда не изменяющимися в функции didRangeBeacons. – davidethell
Благодарим вас за проб и информацию! Я жду, чтобы вас разрешили в обновлении ... –
Вы отправили радар для этой проблемы? –