ReadRSSI不会调用委托方法

M t*_*e K 8 bluetooth ios core-bluetooth bluetooth-lowenergy ios8

自从iOS 8更新后我遇到了问题,现在我的应用程序已连接到BLE设备,并且由于计时器和ReadRSSI方法而定期读取RSSI .

readRSSI调用该方法(使用断点检查),所以在此之前一切都很好.

根据调用的文档readRSSI应该触发回调

- (void)peripheral:(CBPeripheral *)peripheral didReadRSSI:(NSNumber *)RSSI error:(NSError *)error
Run Code Online (Sandbox Code Playgroud)

但是,每次都不调用此委托方法.但是,当我关闭和打开手机蓝牙时,我恢复了RSSI更新.有没有人遇到过这个问题?我该如何设法修复它?

小智 3

我也遇到了同样的问题,一开始以为是我的问题,但后来发现真的很奇怪。

我写了类似的程序,使用iPhone连接BLE信标,并使用[CBPeripheral readRSSI]获取信号强度。当 BLE 信标第一次连接到我的 iPhone 时,一切都很顺利。但如果断开连接并再次重新连接,则 readRSSI 方法将不会再被调用。只有在我重新启动 iPhone 上的蓝牙后,问题才会得到解决。

我在调试模式下一步步运行程序,令我惊讶的是,我根本没有发现任何问题。即使我多次断开连接并重新连接,readRSSI方法仍然可以正常调用。

希望这会有所帮助。我也在等待这个奇怪的事情的答案。