Как измерить силу WiFi дБм на iPhone X iOS Swift

Я ищу способы получить сырой сигнал Wi-Fi, дБм на телефонах iPhone X, но могу найти только как получить 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
  }
}

1 ответ

Вам нужно спросить разрешение у Apple и создать право.

Вы можете использовать signalStrength из NEHotspotNetwork, как описано здесь https://developer.apple.com/documentation/networkextension/nehotspotnetwork/1618923-signalstrength

Когда приложение Hotspot Helper запрашивается для оценки сети или фильтрации списка сканирования Wi-Fi, оно аннотирует объект NEHotspotNetwork с помощью метода setConfidence:.

Вот формула для преобразования процента мощности сигнала Wi-Fi в RSSI дБм:

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

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

См. Этот ответ для более подробной информации: Как преобразовать уровень сигнала Wifi из качества (в процентах) в RSSI (дБм)?

Другие вопросы по тегам