2016-09-06 32 views
8

Uygulamamda, CoreLocation'da Beacon Region Monitoring özelliğini kullanıyorum. Uygulama, bölge olarak 2 farklı yakınlık UUID'sini (farklı kimlikleri vardır), 'u ayarlar ve aşağıdaki gibi çalışmaya başlar.iOS'ta İşaret Etme İşaretleri 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]; 
     } 
    } 
} 

Bu IOS 8 ve IOS 9'da çalışır, ancak

IOS 10. çalışmaz

1.broadcast beacon1 

2.[app]didRangeBeacons (beacon1) 

3.stop beacon1 and broadcast beacon2 

4.[app]didRangeBeacons (beacon2) 

[IOS 10]

[IOS 8/IOS 9]
1.broadcast beacon1 

2.[app]didRangeBeacons (beacon1) 

3.stop beacon1 and broadcast beacon2 

4.[app]didRangeBeacons (**beacon1**) 

Bu iOS 10'un bir hatası mı?

+2

Orada kesinlikle işaret değişen ile iOS 10'da farklı bir şey gibi görünüyor. Ben kısaca gösteren ve daha sonra didRangeBeacons işlevinde tekrar hiçbir zaman değişen beacons ile tutarsız sonuçlar alıyorum. – davidethell

+0

Deneme ve bilgi için teşekkür ederiz! Bir güncellemede çözülmeyi bekliyorum ... –

+0

Bu sorun için bir radar mı dosyaladınız? –

cevap

0

Tamam, Swift 3'te de aynı sorun vardı ama çözdüm.

(muhtemelen doğrudan ilişkilidir) iki şey var gibi: fenerinin reklam aralığı (yaklaşık 200 msn olarak ayarlayın ve daha sonra çalışması gerekir çok yüksek ayarlanmış olabilir iOS10 için

  • hem 9 & 10, hem de Mactrumors'ta dantastic tarafından tavsiye edildiği gibi)

  • Yeniden nasıl çalıştığımı: iOS 9.3.5 ile bir iPad üzerinde test ettim ve Dağıtım hedefini 9.3 olarak değiştirmem gerekiyordu. Bu, hem iPad'imde hem iOS 9 ile tekrar çalıştığını gösterdi, hem de ... iOS 10 cihazımda da çözdüm.