我正在使用核心蓝牙框架。我已经实现了didDisconnectPeripheral方法来检测断开的外围设备。现在它在外围设备断开后大约 20 秒调用。我想减少那个超时时间。我在文档中搜索了很多但无法得到答案。真的有可能吗?
问问题
656 次
2 回答
0
您可能让委托在后台线程上工作,这可以解释延迟。
检查您的初始化以查看它是否在不同的线程上进行。如果您的队列值不是 nil,则很可能是这种情况。
self.centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
此外,在您的didDisconnectPeripheral
方法中,您可以放置它来确定线程在被调用时是否发生了变化。
NSLog(@"Current thread: %@",[NSThread currentThread]);
如果线程已更改,那么您可以修改初始化以确保它继续在主线程上。
于 2015-04-09T19:38:30.577 回答
0
我一直在使用这种方法,它在我断开连接时(几乎)立即调用,所以绝对应该可以减少延迟时间。您确定您没有将其与didFailToConnectToPeripheral
方法混淆吗?didFail 方法通常需要很长时间才能被调用,因为我相信我记得读过蓝牙 LE 没有超时时间,所以它会尝试连接很长时间。
于 2013-06-13T22:55:04.807 回答