OGeek|极客世界-中国程序员成长平台

标题: ios - 在蓝牙重置之前,蓝牙设备在测距和监控 iBeacons 后无法连接 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 23:58
标题: ios - 在蓝牙重置之前,蓝牙设备在测距和监控 iBeacons 后无法连接

我编写了一个小型 iBeacon 演示应用程序,它可以检测信标范围,然后在第一次发现信标后监控范围内的信标。运行此应用程序后(如果它仍在后台),我发现设备无法建立新的蓝牙连接。例如,当我进入我的汽车时,我的汽车会无限尝试连接到手机,但直到我关闭并再次打开蓝牙为止。这似乎是离开 iBeacons 区域后保持蓝牙处于事件状态的问题,但我已停止在 didExitRegion 上对信标进行测距。我什至尝试在 View 消失或应用程序关闭时停止对信标的测距。为了在离开范围时正确关闭连接,是否需要采取其他步骤?

编辑:我只说在 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];



Best Answer-推荐答案


没有更多“关闭蓝牙事件”的步骤,无论如何,您的设备应该能够在监控 iBeacon 区域时进行其他连接(我不确定测距,因为它更多一个“事件”任务,但我敢打赌这是同一件事)

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

关于ios - 在蓝牙重置之前,蓝牙设备在测距和监控 iBeacons 后无法连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24897901/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4