0

私は推定ビーコンとその SDK をビーコンの監視と測距に使用しています。レンジングは、iOS 8.4 および iOS 9.0.2 で正常に機能します。監視は iOS 8.4 でのみ機能しますが、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];
    }



}

この点で私を助けてください。

4

1 に答える 1

0

解決策の問題は、iOS バージョン 9.0.2 にあることがわかりました。iOS 9.1 に更新すると、通知領域に通知が表示されるようになりました。

于 2015-11-09T05:55:31.793 に答える