iOS 8 CoreBluetooth不推荐使用RSSI方法

因此,通过阅读CBPeripheralDelegate文档,似乎RSSIperipheralDidUpdateRSSI:error:已被iOS 8弃用。

我注意到我的信号强度指示器不再被更新,所以我做了一些研究,发现了一种新的方法( [CBPeripheralDelegate peripheral:didReadRSSI:error:] ),据称在调用readRSSI方法后异步调用。 不幸的是,即使我确实将父类设置为CBPeripheral委托,这个方法似乎也没有被回调。

有没有其他人有iOS 8 CoreBluetooth更新的问题?

在Apple开发者论坛上已经发布了一个已知的问题,我也有一个开放的雷达。

问题似乎是新的回调方法peripheral:didReadRSSI:error:在初始连接到外围设备之后,从未在iOS 8上调用。 我发现的唯一解决方案是通过打开/关闭手机或重新启动手机来重置手机上的蓝牙。

这是我提交的开放式雷达的链接。

更新:

刚刚测试了我在当前8.2版本中显示此问题的示例,我不再看到任何问题,因为新的iOS 8委托方法永远不会被调用。 我按照8.2版本标记了我的雷达。

在iOS 8.1.1中, peripheral:didReadRSSI:error:只会调用您连接的外围设备。 如果您只是通过扫描发现了外设并在其上调用了readRSSI ,则不会调用回调。

首先尝试连接外围设备(通过CBCentralManagerconnectPeripheral:options: ,然后调用readRSSI

它适用于iOS 8.0.2,但它现在受到限制。 我每200ms发送一次readRSSI,每秒只响应一次。 它适用于iOS 7.1。

它在iOS 8.0.2中再次运行!

使用[myPeripheral readRSSI];