iOS 8 CoreBluetooth不推荐使用RSSI方法

时间:2014-09-20 18:52:16

标签: ios objective-c ios8 core-bluetooth

因此,通过阅读CBPeripheralDelegate文档,似乎{8}已弃用RSSIperipheralDidUpdateRSSI:error:

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

还有其他人遇到iOS 8 CoreBluetooth更新问题吗?

4 个答案:

答案 0 :(得分:9)

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

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

Here is the link to open radar I filed.

更新:

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

答案 1 :(得分:4)

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

首先尝试连接到外围设备(通过CBCentralManager' s connectPeripheral:options:),然后拨打readRSSI

答案 2 :(得分:1)

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

答案 3 :(得分:0)

它在iOS 8.0.2中再次运行!

使用[myPeripheral readRSSI];