iBeacon监控实现ios7.1

时间:2014-03-17 17:19:52

标签: ios ibeacon

我对iBeacon监控实施有疑问。我在调用locationManager:didDetermineState:forRegion:方法时触发本地通知。当应用程序进入后台时,我根本没有得到任何本地通知,但是当我按下主页按钮激活屏幕时,它们立刻就出现了。根据我离开睡眠的时间,我醒来时总能得到几十个通知。怎么可能?有人有同样的问题吗?

我在iOS 7.1上使用iPhone 5S和5C。本地通知以这种方式设置:

- (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region{

    UILocalNotification *localNot = [[UILocalNotification alloc] init];
    localNot.alertBody = [NSString stringWithFormat:@"Region state %d determined", state];
    localNot.alertAction = @"Go for it!";
    localNot.soundName = UILocalNotificationDefaultSoundName;
    localNot.fireDate = nil;

    [[UIApplication sharedApplication] presentLocalNotificationNow:localNot];
}

1 个答案:

答案 0 :(得分:1)

我怀疑你实际上根本没有进行任何背景检测,而且当你点击主页按钮时看到通知的原因是因为你设置了notifyEntryStateOnDisplay标志,这会让你得到一个额外的每当屏幕出现时回调到didDetermineState: forRegion:,对于您正在使用标志设置进行监控的每个区域。

为什么你不在后台获得回调?您可能需要等待最多15分钟才能在后台检测到iBeacon,即使在iOS 7.1上也是如此。请参阅here