當我的應用沒有運行時,我很難解決這個問題。我已經實現了locationManager:didRangeBeacons:inRegion:
,它在應用程序在前臺或後臺運行時調用,但是當我退出應用程序並鎖定屏幕時,它似乎沒有任何操作。位置服務圖標消失,我永遠不知道我進入了一個燈塔範圍。 LocalNotification是否仍然有效?測距信標只適用於應用程序運行?
我有位置更新和使用在背景模式(XCode 5)中選擇的藍牙LE配件我不認爲我需要它們。
任何幫助非常感謝。
-(void)watchForEvents { // this is called from application:didFinishLaunchingWithOptions
id class = NSClassFromString(@"CLBeaconRegion");
if (!class) {
return;
}
CLBeaconRegion * rflBeacon = [[CLBeaconRegion alloc] initWithProximityUUID:kBeaconUUID identifier:kBeaconString];
rflBeacon.notifyOnEntry = YES;
rflBeacon.notifyOnExit = NO;
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager startRangingBeaconsInRegion:rflBeacon];
[self.locationManager startMonitoringForRegion:rflBeacon];
}
-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region {
if (beacons.count == 0 || eventRanged) { // breakpoint set here for testing
return;
}
eventRanged = YES;
if (backgroundMode) { // this is set in the EnterBackground/Foreground delegate calls
UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.alertBody = [NSString stringWithFormat:@"Welcome to the %@ event.",region.identifier];
notification.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] presentLocalNotificationNow:notification];
}
// normal processing here...
}
「(。我也有在此之前的工作,它會給鎖定屏幕上的通知,現在不工作)」 ......你有什麼改變? –
行..我確實瞭解瞭如何在後臺和上面的問題已更新時再次使我的徽章出現在鎖定屏幕上:[self.locationManager startMonitoringForRegion:rflBeacon]; –
這可能會幫助你:http://stackoverflow.com/questions/19127282/ibeacon-notification-when-the-app-is-not-running – random