อัปเดตสำหรับ iOS 10 ขึ้นไป
CNCopySupportedInterfaces จะเลิกใช้แล้วใน iOS 10 ( การอ้างอิง API )
คุณต้องนำเข้าSystemConfiguration / CaptiveNetwork.hและเพิ่มSystemConfiguration.frameworkไปยังไลบรารีที่เชื่อมโยงเป้าหมายของคุณ (ภายใต้ขั้นตอนการสร้าง)
นี่คือข้อมูลโค้ดใน swift (คำตอบของ RikiRiocma) :
import Foundation
import SystemConfiguration.CaptiveNetwork
public class SSID {
class func fetchSSIDInfo() -> String {
var currentSSID = ""
if let interfaces = 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
}
}
}
return currentSSID
}
}
( สำคัญ: CNCopySupportedInterfaces จะส่งคืนศูนย์บนตัวจำลอง)
สำหรับ Objective-c ดูคำตอบของ Esad ที่นี่และด้านล่าง
+ (NSString *)GetCurrentWifiHotSpotName {
NSString *wifiName = nil;
NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
for (NSString *ifnam in ifs) {
NSDictionary *info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
if (info[@"SSID"]) {
wifiName = info[@"SSID"];
}
}
return wifiName;
}
อัปเดตสำหรับ iOS 9
ตั้งแต่ iOS 9 Captive Network เลิกใช้แล้ว (ที่มา )
* ไม่เลิกใช้แล้วใน iOS 10 ดูด้านบน
ขอแนะนำให้คุณใช้ NEHotspotHelper (ต้นฉบับ )
คุณจะต้องส่งอีเมลแอปเปิ้ลที่ networkextension@apple.com และขอสิทธิ์ (มา )
โค้ดตัวอย่าง ( ไม่ใช่รหัสของฉันดูคำตอบของ Pablo A ):
for(NEHotspotNetwork *hotspotNetwork in [NEHotspotHelper supportedNetworkInterfaces]) {
NSString *ssid = hotspotNetwork.SSID;
NSString *bssid = hotspotNetwork.BSSID;
BOOL secure = hotspotNetwork.secure;
BOOL autoJoined = hotspotNetwork.autoJoined;
double signalStrength = hotspotNetwork.signalStrength;
}
หมายเหตุด้านข้าง: ใช่พวกเขาเลิกใช้ CNCopySupportedInterfaces ใน iOS 9 และกลับตำแหน่งใน iOS 10 ฉันได้พูดคุยกับวิศวกรเครือข่ายของ Apple และการพลิกกลับเกิดขึ้นหลังจากผู้คนจำนวนมากยื่น Radars และพูดถึงปัญหาในฟอรัม Apple Developer