2015-11-04 74 views
0

我正在使用estimote信標及其SDK進行信標監視和測距。測距在iOS 8.4和iOS 9.0.2上運行良好。雖然監控只適用於iOS 8.4,但在進入和離開區域時,我沒有收到iOS 9.0.2的通知。Estimote iBeacons Monitoring不適用於iOS 9.0.2

這裏是我使用的應用程序代理中的代碼

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Override point for customization after application launch. 

    ... 


    self.beaconRegion = [[CLBeaconRegion alloc] 
         initWithProximityUUID:[[NSUUID alloc] 
               initWithUUIDString:@"myUUID"] 
         major:12345 minor:12345 identifier:@"mint"]; 
    self.beaconRegion1 = [[CLBeaconRegion alloc] 
         initWithProximityUUID:[[NSUUID alloc] 
               initWithUUIDString:@"myUUID"] 
         major:12334 minor:12345 identifier:@"ice"]; 
    self.beaconRegion2 = [[CLBeaconRegion alloc] 
         initWithProximityUUID:[[NSUUID alloc] 
               initWithUUIDString:@"myUUID"] 
         major:1234 minor:1234 identifier:@"blueberry"]; 

    self.beaconManager = [ESTBeaconManager new]; 
    self.beaconManager.delegate = self; 
    self.locManager.allowsBackgroundLocationUpdates = YES; 
    self.locManager.pausesLocationUpdatesAutomatically = NO; 
    [self.locManager requestAlwaysAuthorization]; 

    [self.locManager startMonitoringForRegion:self.beaconRegion]; 


    self.beaconRegion.notifyOnEntry = YES; 
    self.beaconRegion1.notifyOnEntry = YES; 
    self.beaconRegion2.notifyOnEntry = YES; 

    self.beaconRegion.notifyOnExit = YES; 
    self.beaconRegion1.notifyOnExit = YES; 
    self.beaconRegion2.notifyOnExit = YES; 
    [self.beaconManager requestAlwaysAuthorization]; 

    [self.beaconManager startMonitoringForRegion:self.beaconRegion]; 
    [self.beaconManager startMonitoringForRegion:self.beaconRegion1]; 
    [self.beaconManager startMonitoringForRegion:self.beaconRegion2]; 

    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; 
    if ([UIApplication respondsToSelector:@selector(registerUserNotificationSettings:)]) { 
     UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert | 
                 UIUserNotificationTypeBadge | 
                 UIUserNotificationTypeSound); 
     UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes 
                       categories:nil]; 
     [application registerUserNotificationSettings:settings]; 
     [application registerForRemoteNotifications]; 
    } 
    return YES; 
} 

- (void)beaconManager:(CLLocationManager *)manager didEnterRegion:(CLBeaconRegion *)region 
{ 
    // On enter 
    UILocalNotification *notification = [UILocalNotification new]; 
    if ([region.identifier isEqualToString:self.beaconRegion.identifier]) { 
     NSLog(@"MintEnter"); 
     notification.alertBody = @"You Have Entered Region 1"; 
     notification.soundName = UILocalNotificationDefaultSoundName; 
     notification.category = @"MintEnter"; 
     [[UIApplication sharedApplication] presentLocalNotificationNow:notification]; 
    } 
    else if ([region.identifier isEqualToString:self.beaconRegion1.identifier]){ 
     NSLog(@"IceEnter"); 
     notification.alertBody = @"You Have Entered Region 2"; 
     notification.soundName = UILocalNotificationDefaultSoundName; 
     notification.category = @"IceEnter"; 
     [[UIApplication sharedApplication] presentLocalNotificationNow:notification]; 
    } 
    else if ([region.identifier isEqualToString:self.beaconRegion2.identifier]){ 
     NSLog(@"BlueBerryEnter"); 
     notification.alertBody = @"You Have Entered Region 3"; 
     notification.soundName = UILocalNotificationDefaultSoundName; 
     notification.category = @"BlueBerryEnter"; 
     [[UIApplication sharedApplication] presentLocalNotificationNow:notification]; 
    } 



} 

請幫我在這方面。

+0

你可以實現'monitoringDidFail'委託並檢查它是否拋出任何東西?你是否也可以實現'didDetermineState'委託並檢查它爲你定義的信標區域報告的狀態?它應該在開始監控後幾秒鐘自動調用。 – heypiotr

+0

更新到iOS9.1後,所有代表都得到了實施,問題出現在iOS 9.0.2之後,就像魅力一樣。 – Usman

回答

0

我發現解決方案問題是iOS版本9.0.2,當我更新到iOS 9.1通知開始出現在通知區域時。

相關問題