我正在使用核心蓝牙框架。我已经实现了 didDisconnectPeripheral 方法来检测断开连接的外设。现在它在外围设备断开后大约20秒后调用。我想减少超时期限。我在文档中搜索了很多,但无法得到答案。真的有可能吗?
答案 0 :(得分:0)
我一直在使用这种方法,并且在我断开连接后立即调用(几乎),因此绝对应该可以缩短延迟时间。你确定你不会对didFailToConnectToPeripheral
方法感到困惑吗? didFail方法通常需要很长时间才能被调用,因为我相信我记得读过蓝牙LE没有超时时间,所以它会尝试连接很长时间。
答案 1 :(得分:0)
你可能让代表在后台线程上工作,这可以解释延迟。
检查初始化以查看它是否在另一个线程上。如果你的队列值不是nil,那很可能就是这种情况。
self.centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
此外,在didDisconnectPeripheral
方法中,您可以放置此方法以确定线程在调用时是否发生了更改。
NSLog(@"Current thread: %@",[NSThread currentThread]);
如果线程已更改,则可以修改初始化以确保它在主线上。