我正在使用 Corebluetooth 框架开发应用程序,
并连接到 BLE 设备以获取 RSSI 值。
我设置了一个定期读取RSSI的功能,定时器代码如下
NSTimer *timer;
timer = [NSTimer scheduledTimerWithTimeInterval:1.2f target:self selector:@selector(detectRSSI) userInfo:nil repeats:YES];
并且detectRSSI代码如下
- (void)detectRSSI
{
[self.peripheral readRSSI];
}
所以问题是,
该功能工作正常,但是当我设置的时间间隔小于 1.2 秒时,
peripheralDidUpdateRSSI 会随机报如下错误信息:
The operation was cancelled.
如果速率超过 1.2 秒,则不会发生这种情况。
有谁知道更频繁地读取 RSSI 值(0.5 秒或更短)?