根据iBeacon Bluetooth didEnterRegion and didExitRegion methods are never fired中已经解决的问题,这是另一个问题。
详细地说,didEnterRegion和didExitRegion的方法是在后台或设备锁定时从不触发。此外,这两种方法可以正常触发,而前面的信标应用。
我的应用程序基于苹果演示" Airlocated (示例代码,由apple inc提供)"在波纹管链接: https://developer.apple.com/library/ios/samplecode/AirLocate/Introduction/Intro.html#//apple_ref/doc/uid/DTS40013430-Intro-DontLinkElementID_2。我很难修改任何代码,除了添加一些代码,如下所示:
in file" APLAppDelegate.m"
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
NSLog(@"Entered region: %@", region);
[self sendLocalNotificationForBeaconRegion:(CLBeaconRegion *)region];
}
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
NSLog(@"Exited region: %@", region);
}
在文件APLMonitoringViewcontroller.m
中- (void)updateMonitoredRegion
{
...
[self.locationManager startMonitoringForRegion:region];
[self.locationManager startRangeingForRegion:region];
...
}
补充一下。我试过了波纹管方法:
有人可以给我一些建议吗?
答案 0 :(得分:2)
您等待背景检测多长时间了?在某些情况下,这可能需要15分钟。 See here for details.
如该文章所述,您不需要将位置更新背景模式设置为YES,也不需要将notifyOnExit和notifyOnEntry指定为true。