【问题标题】:How to measure WiFi dBm strength on iPhone X iOS Swift如何在 iPhone X iOS Swift 上测量 WiFi dBm 强度
【发布时间】:2019-12-25 03:51:35
【问题描述】:

我正在寻找方法来获取 wifi 的原始信号,iPhone X 手机上的 dBm,但只能找到如何从:Answer 获取 numberOfActiveBars

尝试@Mosbash 的回答,结果崩溃了。

Thread 1: EXC_BAD_ACCESS (code=1, address=0x18)代码:

class ViewController: UIViewController {

  var hotspot: NEHotspotNetwork!

  func viewDidLoad() {
   ....
   hotspot = NEHotspotNetwork()
  }

  func record() {
    hotspot.setConfidence(.high) /// <- Crash
    print(hotspot.signalStrength) /// <- Crash if above line is commented out
  }
}

【问题讨论】:

    标签: ios swift wifi iphone-x dbm


    【解决方案1】:

    您需要获得 Apple 的许可并创建授权。

    【讨论】:

    【解决方案2】:

    您可以使用来自 NEHotspotNetwork 的 signalStrength,如此处所述 https://developer.apple.com/documentation/networkextension/nehotspotnetwork/1618923-signalstrength

    当 Hotspot Helper 应用程序被要求评估网络或 过滤 Wi-Fi 扫描列表,它注释 NEHotspotNetwork 对象 通过 setConfidence: 方法。

    以下是将 Wifi 信号强度百分比转换为 RSSI dBm 的公式:

    quality = 2 * (dBm + 100)  where dBm: [-100 to -50]
    
    dBm = (quality / 2) - 100  where quality: [0 to 100]
    

    有关详细信息,请参阅此答案: How to convert Wifi signal strength from Quality (percent) to RSSI (dBm)?

    【讨论】:

    • 这为您提供了介于 0.0(弱/无信号)到 1.0(强信号)范围内的值。这不是 dBm,范围在 -20 到 -90 之间
    • 完美,谢谢。我尝试设置 HotSpot 助手,但手机未使用 Metal 时出现崩溃。有什么想法吗?
    • 你能分享你的代码和崩溃堆栈跟踪吗?
    猜你喜欢
    • 1970-01-01
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多