我正在使用IBeacon构建一个简单的ios应用程序,我使用startMonitoringForRegion来检测信标。
[self.locationManager startMonitoringForRegion:beaconRegion];
没关系。我的问题是我想检查蓝牙是打开还是关闭。如果蓝牙关闭,我想定期检查用户是否在信标网络附近并发送建议激活de bluetooth的通知。为此目的,我使用startMonitoringSignificantLocationChanges。
[self.locationManager startMonitoringSignificantLocationChanges];
问题是这两个方法都调用了didUpdateLocations,所以即时发送多个通知。我可以确定startMonitoringForRegion或startMonitoringSignificantLocationChanges是否调用了这个方法吗?
由于
答案 0 :(得分:2)
startMonitoringSignificantLocationChanges使用locationManager:didUpdateLocations:callback
while startMonitoringForRegion:使用locationManager:didEnterRegion:(didExitRegion)回调
答案 1 :(得分:1)
问题在于didEnterRegion:callback我有startRangingBeaconsInRegion和startUpdatingLocation。
[manager startRangingBeaconsInRegion:(CLBeaconRegion*) region];
//[self.locationManager startUpdatingLocation];
第二个对我来说没有必要,所以我评论该行并且它可以正常工作。 didUpdateLocations:回调现在只能由startMonitoringSignificantLocationChanges触发。