如何在Swift中获得以前连接的所有Wi-Fi网络?

时间:2016-01-04 07:20:37

标签: ios iphone swift wifi ios9

我知道它无法获得所有可用的Wi-Fi网络,并且可以获取当前连接的Wi-Fi网络的信息,如果我错了,请纠正我。<登记/>
我只想知道获取所有以前连接的Wi-Fi网络信息的可行性,请帮助我分享您的经验。

FYI,
我使用以下代码获取当前连接的Wi-Fi网络信息,并且工作正常。

var currentSSID: String!
let interfaces:CFArray! = CNCopySupportedInterfaces()
for i in 0..<CFArrayGetCount(interfaces) {
    let interfaceName: UnsafePointer<Void>
    =  CFArrayGetValueAtIndex(interfaces, i)
    let rec = unsafeBitCast(interfaceName, AnyObject.self)
    let unsafeInterfaceData = CNCopyCurrentNetworkInfo("\(rec)")
    if unsafeInterfaceData != nil {
        let interfaceData = unsafeInterfaceData! as Dictionary!
        currentSSID = interfaceData["SSID"] as! String
    } else {
        currentSSID = ""
    }
    print(currentSSID)
}

1 个答案:

答案 0 :(得分:1)

从iPhone的库存来看,设置无法实现。您想要的信息存储在iPhone的钥匙串中。如果你有权访问iPhone SDK,你可以开始搞乱如果你喜欢,但我会留下它,因为这将是一个StackOverflow答案。 Source

如果启用了ICloud Keychain,则可以获取此数据。否则,你就无法做到。 Source您可以使用kishikawakatsumi/KeychainAccess或自己动手。 Here is homemade code to save and retrieve keychain values. 它是Keychain的一个简单的swift包装器,适用于iOS和OS X