corebluetooth:didDisconnectPeripheral减少超时

时间:2013-06-11 08:33:25

标签: iphone ios objective-c core-bluetooth

我正在使用核心蓝牙框架。我已经实现了 didDisconnectPeripheral 方法来检测断开连接的外设。现在它在外围设备断开后大约20秒后调用。我想减少超时期限。我在文档中搜索了很多,但无法得到答案。真的有可能吗?

2 个答案:

答案 0 :(得分:0)

我一直在使用这种方法,并且在我断开连接后立即调用(几乎),因此绝对应该可以缩短延迟时间。你确定你不会对didFailToConnectToPeripheral方法感到困惑吗? didFail方法通常需要很长时间才能被调用,因为我相信我记得读过蓝牙LE没有超时时间,所以它会尝试连接很长时间。

答案 1 :(得分:0)

你可能让代表在后台线程上工作,这可以解释延迟。

检查初始化以查看它是否在另一个线程上。如果你的队列值不是nil,那很可能就是这种情况。

self.centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];

此外,在didDisconnectPeripheral方法中,您可以放置​​此方法以确定线程在调用时是否发生了更改。

NSLog(@"Current thread: %@",[NSThread currentThread]);

如果线程已更改,则可以修改初始化以确保它在主线上。