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];
}
}
請幫我在這方面。
你可以實現'monitoringDidFail'委託並檢查它是否拋出任何東西?你是否也可以實現'didDetermineState'委託並檢查它爲你定義的信標區域報告的狀態?它應該在開始監控後幾秒鐘自動調用。 – heypiotr
更新到iOS9.1後,所有代表都得到了實施,問題出現在iOS 9.0.2之後,就像魅力一樣。 – Usman