【发布时间】:2015-05-26 03:14:49
【问题描述】:
在我的应用委托中,我正在注册以接收 didEnterRegion 和 didExitRegion 的更新。具体来说,在didFinishLaunchingWithOptions 中,我声明并注册到信标,如下所示:
//Setup the beacon monitoring
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.delegate=self;
for(CLRegion *r in locationManager.monitoredRegions){
[locationManager stopMonitoringForRegion:r];
}
self.beaconManager = [[ESTBeaconManager alloc] init];
self.beaconManager.delegate = self;
[self.beaconManager requestAlwaysAuthorization];
//Build the beacons
self.beaconRegion_1=[[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:target_UUID_1]
major:target_Major_1
minor:target_Minor_1
identifier:@"BridgeRegion_1"];
self.beaconRegion_2=[[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:target_UUID_2]
major:target_Major_2
minor:target_Minor_2
identifier:@"BridgeRegion_2"];
self.beaconRegion_3=[[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:target_UUID_3]
major:target_Major_3
minor:target_Minor_3
identifier:@"BridgeRegion_3"];
self.beaconRegion_4=[[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:@"73F2C305-CE97-410E-B0DF-11D5B4021A2E"]
major:1641
minor:55555
identifier:@"BridgeRegion_4"];
//Start the monitoring
self.beaconRegion_1.notifyOnEntry = YES;
self.beaconRegion_1.notifyOnExit = YES;
self.beaconRegion_1.notifyEntryStateOnDisplay = YES;
self.beaconRegion_2.notifyOnEntry = YES;
self.beaconRegion_2.notifyOnExit = YES;
self.beaconRegion_2.notifyEntryStateOnDisplay = YES;
self.beaconRegion_3.notifyOnEntry = YES;
self.beaconRegion_3.notifyOnExit = YES;
self.beaconRegion_3.notifyEntryStateOnDisplay = YES;
/*self.beaconRegion_4.notifyOnEntry = YES;
self.beaconRegion_4.notifyOnExit = YES;
self.beaconRegion_4.notifyEntryStateOnDisplay = YES;*/
[self.beaconManager startMonitoringForRegion:self.beaconRegion_1];
[self.beaconManager startMonitoringForRegion:self.beaconRegion_2];
[self.beaconManager startMonitoringForRegion:self.beaconRegion_3];
我遇到的问题是这样的,曾经第三次调用信标startMonitoringForRegion,永远不会触发任何 didEnterRegion 或 didExitRegion 调用。我已经交换了调用的顺序,无论哪个物理信标被第三个调用,这个规则都是不变的。
我已经为 ESTBeaconManager 实现了所有的委托函数,并且没有任何异常被触发。任何帮助将不胜感激。
【问题讨论】:
-
第4个被触发了吗?
-
抱歉,这是一个小错误。我曾尝试初始化第四个信标,以便测试问题是最后一个初始化的信标有故障还是第三个。测试没有结果,我只是忘了删除那行代码。我只有三个信标。
-
尝试从您的手机中删除所有监控信标的应用程序,重新启动并重新安装该应用程序。
-
这是一个空白的开发设备。唯一监控的其他应用是 estimote 应用,我应该删除它吗?
标签: ios cocoa-touch bluetooth-lowenergy cllocation estimote