iOS 8 CoreBluetooth不推荐使用的RSSI方法

问题描述 投票:7回答:4

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

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

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

ios objective-c ios8 core-bluetooth
4个回答
9
投票

[在我也有公开雷达的Apple Developer论坛上已经发布了有关此问题的已知问题。

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

Here is the link to open radar I filed.

更新:

刚刚测试了我的示例,该示例在当前的8.2版本中显示了此问题,并且我再也看不到从未调用过的新iOS 8委托方法的任何问题。我正在按照8.2版本将雷达标记为已解决。


4
投票

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

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


1
投票

它可以在iOS 8.0.2上运行,但现在受到限制。我每200毫秒发送一次readRSSI,每秒仅收到一次响应。在iOS 7.1上运行良好。


0
投票

它在iOS 8.0.2中再次可用!

使用[myPeripheral readRSSI];

© www.soinside.com 2019 - 2024. All rights reserved.