如何使用CaptiveNetwork获取可用WiFi网络列表

时间:2012-11-16 10:42:17

标签: iphone ios ios6 wifi

我希望获得某个地区的所有WiFi网络及其SSID和SSIDDATA值。 使用this我可以获取我正在使用的WiFi网络的SSID和SSIDDATA值。但问题是如何使所有WiFi网络的SSID和SSIDDATA可用,即使我没有连接到一个。我不想像使用stumbler那样使用私有API,因为它会被AppStore拒绝。请指教。

2 个答案:

答案 0 :(得分:1)

简单的答案是,如果不使用私有API,就无法获得它们。

答案 1 :(得分:0)

我相信你可以通过Apple的SystemConfiguration API

来自another post的此代码段可能很有用:

import UIKit
import Foundation
import SystemConfiguration.CaptiveNetwork

class FirstView: UIViewController
{
    @IBOutlet weak var label: UILabel!

    override func viewDidLoad()
    {
        super.viewDidLoad()
        let ssid = self.getWiFiName()
        print("SSID: \(ssid)")
    }

    func getWiFiName() -> 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
    }
}