Swift3.0: 獲取Wifi SSID

使用SystemConfiguration Api 可以獲取當前連接的 Wifi SSID、BSSID信息,swift3.0的寫法如下:

首先要導入SystemConfiguration.framework,然後導入頭文件:

import SystemConfiguration
import SystemConfiguration.CaptiveNetwork

方法:

func getUsedSSID() -> String {
    let interfaces = CNCopySupportedInterfaces()
    var ssid = ""
    if interfaces != nil {
        let interfacesArray = CFBridgingRetain(interfaces) as! Array<AnyObject>
        if interfacesArray.count > 0 {
            let interfaceName = interfacesArray[0] as! CFString
            let ussafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName)
            if (ussafeInterfaceData != nil) {
                let interfaceData = ussafeInterfaceData as! Dictionary<String, Any>
                ssid = interfaceData["SSID"]! as! String
            }
        }
    }
    return ssid
}

如果沒有連接 wifi 返回 nil。能獲取到的信息有:

▿ 3 elements
▿ 0 : 2 elements
    - .0 : "SSID"
    - .1 : PA_WLAN_MA
▿ 1 : 2 elements
    - .0 : "BSSID"
    - .1 : 24:de:c6:cf:8a:fd
▿ 2 : 2 elements
    - .0 : "SSIDDATA"
    - .1 : <50415f57 4c414e5f 4d41>

可能有項目需要獲取 Wifi 列表,這在 iOS9 以前是需要使用私有 Api 的,iOS9以後,有更好的方式來處理,參考iOS 9 NetworkExtension使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章