1

Hello my app needs to retrieve current wifi signal strength for iOS 7 devices and above. What I have found so far..

  • Can get SSID and BSSID from CaptiveNetwork api/framework but not signal strength

  • From my understanding Apple80211 is outdated and doesn't work with iOS 7 and above. MobileWifi.framework is an alternative that apparently works but a jailbreak is needed (I need non jailbreak).

So can anyone help me here? And please don't point me at other stackoverflow questions unless they provide me with a solution, thanks.

ctapp1
  • 556
  • 1
  • 5
  • 19
  • possible duplicate of https://stackoverflow.com/questions/54172387/how-to-measure-wifi-dbm-strength-on-iphone-x-ios-swift – Dinesh Feb 04 '19 at 14:59

2 Answers2

0

There are methods in iOS 7 and earlier that support direct access to RSSI; however, these seem to be deprecated in iOS 8.

God of Biscuits
  • 1,312
  • 1
  • 13
  • 27
0

It turns out that Apple's (admittedly beta) documentation was wrong. You need to use the protocol, CBPeripheralDelegate.

method def:

    override func peripheral(peripheral: CBPeripheral, didReadRSSI RSSI: NSNumber, error: NSError?) {
        <#code#>
}

You call the peripheral's -readRSSI: method and it will callback to the above function, where you can extract the value from the NSNumber param.

God of Biscuits
  • 1,312
  • 1
  • 13
  • 27
  • CBPeripheralDelegate is for Bluetooth Smart and not for wifi. – Ben Zeeman Dec 13 '16 at 16:55
  • This is true; however, iOS manages waking and sleeping the radios of the device, and it's lower energy than wifi. In other words, it will accomplish the same thing as using wifi. – God of Biscuits Jan 09 '17 at 15:19