繁体   English   中英

在 IOS 应用程序中获取并显示外围蓝牙 RSSI 信号强度

[英]get and display peripheral bluetooth RSSI signal strength in IOS app

我在尝试从外围设备获取蓝牙 RSSI 信号强度的 IOS swift 应用程序中遇到问题。 我一直在尝试使用返回 Future 的 readRSSI()(参见下面的代码),但到目前为止,我无法将 Future 转换为另一个可用的变量,例如 Int 或 String。 我是 Swift 的新手,所以不确定我是否缺少异步步骤或其他步骤。 我习惯于在 R、python、JS 中工作,并且在语法方面遇到了一些挑战。 任何帮助是极大的赞赏。

我尝试切换多种从扩展中提取内容到 ViewController 的方法,但没有运气。 无论我如何尝试传递 Future 类型值,我都会收到类型不匹配的错误。

let strengthCharacteristic = self.peripheral.readRSSI()
let thisRet = self.strengthChar.map({ avar in 
    return avar
})
self.strengthLabel.text = String(thisRet ?? 0)

readRSSI() 方法的Apple 文档

在 iOS 和 tvOS 上,当您在连接到中央管理器时调用此方法来检索外围设备的 RSSI 时,外围设备会调用其委托 object 的 peripheral:didReadRSSI:error: 方法,其中包括 RSSI 值作为参数。

为了从外设读取 RSSI,请在外设的委托 object 中实现 peripheral:didReadRSSI:error:。 当您调用外设 object 的 readRSSI() 方法时,将触发此方法。 您可以在此方法中直接检索 RSSI 值作为输入参数。 不要忘记将委托分配给外围设备 object。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM