【问题标题】:Third Estimote beacon triggered by startMonitoringForRegion does not receive didEnterRegion or didExitRegion由 startMonitoringForRegion 触发的第三个 Estimote 信标未收到 didEnterRegion 或 didExitRegion
【发布时间】: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


【解决方案1】:

本质上,问题是特定设备配置的限制,我在干净的设备(iPod 5-Gen)上测试了相同的代码,它表现完美。记录在案的设备是运行 iOS8.3(12f70) 的 iPhone 4s。

不确定这种体验是否会在未来对任何人有所帮助,但我希望它会。

【讨论】:

    猜你喜欢
    • 2013-04-27
    • 2013-12-13
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多