如何使用Swift在iOS中获得所有wifi网络名称列表

Aka*_*ash 4 ios swift xcode9

我有一个简单的问题,但我不知道如何实现。我需要创建一个应用程序,当用户单击某个网络iphone必须连接到该网络时,它可以获取可用wifi网络名称和信息的所有列表。我可以这样做吗?如何 ?

Md *_*vez 5

无法获得所有可用的wifi网络名称和信息。但是,只能获取您当前连接的网络SSIDSSID这只是网络名称的技术术语)。

此类仅显示您连接的wifi网络名称-

    import UIKit
    import SystemConfiguration.CaptiveNetwork

    class ViewController: UIViewController {

        @IBOutlet weak var label: UILabel!

        override func viewDidLoad(){
            super.viewDidLoad()
            let ssid = self.getAllWiFiNameList()
            print("SSID: \(ssid)")
        }
        func getAllWiFiNameList() -> String? {
            var ssid: String?
            if let interfaces = CNCopySupportedInterfaces() as NSArray? {
            for interface in interfaces {
            if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {
                        ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String
                        break
                    }
                }
            }
            return ssid
        }
    }
Run Code Online (Sandbox Code Playgroud)

输出-(我连接到的网络名称)

在此处输入图片说明

要对此进行测试,您需要将物理设备(iPhone)连接到PC。

  • 是的,我正在连接当前,但我想要所有可用网络列表 (3认同)