0

我正在寻找方法来获取 wifi 的原始信号,iPhone X 手机上的 dBm,但只能找到如何获取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
  }
}
4

2 回答 2

2

您需要征得 Apple 的许可并创建权利。

于 2019-12-24T19:51:35.117 回答
1

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

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

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

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

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

有关更多详细信息,请参阅此答案: 如何将 Wifi 信号强度从质量(百分比)转换为 RSSI(dBm)?

于 2019-01-13T19:36:43.300 回答