在对iBeacons进行测距和监控之后,蓝牙设备无法连接,直到蓝牙重置为止

时间:2014-07-22 21:09:25

标签: ios bluetooth ibeacon connectivity

我已经编写了一个小型iBeacon演示应用程序,其范围为信标,然后在第一次找到它们之后将监视范围内的信标。在我运行此应用程序后(如果它仍然在后台),我发现设备无法建立新的蓝牙连接。例如,当我进入我的汽车时,我的汽车无限地尝试连接到手机而没有成功,直到我再次关闭蓝牙。这似乎是在离开iBeacons区域后保持蓝牙活动的问题,但我已经停止了在didExitRegion上的信标测距。当视图消失或应用关闭时,我甚至尝试停止测距信号。是否还需要采取其他措施才能在离开范围时正确关闭连接?

编辑:我只说OP中的范围,但我已经确保在应用程序变为非活动状态和退出区域时停止监视信标区域。问题仍然存在

编辑2:如果我必须说出预期的特定行为,我希望能够在应用程序运行时以及在后台运行而不停止其他蓝牙连接的情况下对信标进行范围和监控。实际行为是它确实在这些情况下跟踪信标,但它不允许形成其他蓝牙连接。

初始化和开始监控信标的代码(在viewDidLoad中):

if (self.beaconManager == nil) {
    self.beaconManager = [[ESTBeaconManager alloc] init];
    self.beaconManager.delegate = self;
}
if (self.icyMarshmallowRegion == nil) {
    self.icyMarshmallowRegion = [[ESTBeaconRegion alloc] initWithProximityUUID:ESTIMOTE_PROXIMITY_UUID major:[kIcyMarshmallowMajor integerValue] minor:[kIcyMarshmallowMinor integerValue] identifier:kIcyMarshmallowRegionID];
    self.icyMarshmallowRegion.notifyOnEntry = YES;
    self.icyMarshmallowRegion.notifyEntryStateOnDisplay = YES;
}
[self.beaconManager startMonitoringForRegion:self.icyMarshmallowRegion];

停止监控的代码(在didExitRegion中):

[self.beaconManager stopMonitoringForRegion:self.icyMarshmallowRegion];

1 个答案:

答案 0 :(得分:1)

没有更多步骤可以关闭蓝牙活动",无论如何,您的设备应该能够在监控iBeacon区域时采取其他连接(我不确定是范围因为它更像是一个“活跃”的任务,但我敢打赌它是同样的事情)

我在iBeacon中看到了许多与iOS7相关的奇怪行为,其中部分内容已在iOS8中修复,希望一切都会很快好起来。我认为你不应该担心你描述的问题的代码,并等待iOS8