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

3
我想获取一个区域内所有可用的WiFi网络及其SSID和SSIDDATA值。使用这个,我可以获得我正在使用的WiFi网络的SSID和SSIDDATA值。但问题是如何获取所有可用WiFi网络的SSID和SSIDDATA,即使我没有连接到其中任何一个。我不想使用类似stumbler的私有API来实现,因为它将被AppStore拒绝。请给予建议。

大家好,这是一个谦虚的请求,请在投反对票时附上理由。 - NiKKi
不行,如果不使用私有API是不可能的。 - NiKKi
2个回答

1
简单的回答是,如果不使用私有API,你无法获取它们。

0

我相信你可以通过苹果的SystemConfiguration API来实现。

这个另一篇文章中的代码片段可能会有用:

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
    }
}

这将仅返回当前连接的wifi信息。问题是所有可用的wifi网络而不是已连接的。首先,尝试理解问题再写答案。 - user5180348

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接