因此,通过阅读CBPeripheralDelegate
文档,似乎{8}已弃用RSSI
和peripheralDidUpdateRSSI:error:
。
我注意到我的信号强度指示器不再被更新,所以我做了一些研究并发现了一种新的方法([CBPeripheralDelegate peripheral:didReadRSSI:error:]
),在调用readRSSI
方法后可能会异步调用。不幸的是,即使我确实将父类设置为CBPeripheral委托,这种方法似乎也没有被回调。
还有其他人遇到iOS 8 CoreBluetooth更新问题吗?
答案 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];