corebluetooth读取RSSI错误:操作已取消

时间:2013-03-21 05:59:16

标签: ios xcode4.5 core-bluetooth bluetooth-lowenergy rssi

我正在使用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秒或更短)?

1 个答案:

答案 0 :(得分:0)

我也遇到同样的问题。对我来说,只需在sleep(2)内添加peripheralDidUpdateRSSI即可。只是在初始化CBCentralManager时不要忘记使用后台队列。

- (void)peripheralDidUpdateRSSI:(CBPeripheral *)peripheral error:(NSError *)error
{
    NSLog(@"RSSI = %@", peripheral.RSSI);
    sleep(2);
    [self.connectedPeripheral readRSSI];
}