gpt4 book ai didi

ios - iOS9获取RSSI的方法

转载 作者:行者123 更新时间:2023-11-28 21:10:53 24 4
gpt4 key购买 nike

我有显示多个警告的 BLE 源代码,我是新手蓝牙。请看下面的代码。我尝试用 readRSSI 替换,但告诉我我无法将 Int 与 Void 进行比较。如何获得 readRSSI 的 Int 值?或者我应该如何更改代码?

- (void)peripheralDidUpdateRSSI:(CBPeripheral * _Nonnull)peripheral error:(NSError * _Nullable)error
{
if (!isConnected)
return;
if (rssi != peripheral.RSSI.intValue)
{
rssi = peripheral.RSSI.intValue;
[[self delegate] bleDidUpdateRSSI:activePeripheral.RSSI];
}
}

*rssi 是一个静态整数。

*isConnected 是一个 bool 值。

编辑:问题是 RSSI 从 iOS 8.0 开始就被弃用了。

最佳答案

有两种方法可以获取CBPeripheral的RSSI。第一个是发现外围设备时。您将调用 CBCentralManagerDelegate 方法

func centralManager(_ central: CBCentralManager, 
didDiscover peripheral: CBPeripheral,
advertisementData: [String : Any],
rssi RSSI: NSNumber) {
let rssi = intValue
...
}

如果您在前台运行,那么您可以为扫描选项中的键 CBCentralManagerScanOptionAllowDuplicatesKey 提供 true 的值,以重复调用 didDiscover 。这在后台不起作用。

如果您连接到外围设备,则可以定期调用 peripheral.readRSSI()。这将导致回调到 didReadRSSI CBPeripheralDelegate 方法:

optional func peripheral(_ peripheral: CBPeripheral, 
didReadRSSI RSSI: NSNumber,
error: Error?) {
let rssi = RSSI.intValue
...
}

关于ios - iOS9获取RSSI的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43422247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com