ОНОВЛЕННЯ ДЛЯ iOS 10 і новіших версій
CNCopySupportedInterfaces більше не застаріло в iOS 10. ( API Reference )
Вам потрібно імпортувати SystemConfiguration / CaptiveNetwork.h та додати SystemConfiguration.framework до пов'язаних бібліотек вашої цілі (під фази збірки).
Ось фрагмент коду в швидкому режимі (відповідь 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 дивіться відповідь Есада тут і нижче
+ (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 Закрита мережа застаріла *. ( джерело )
* Більше не застаріло в iOS 10, див. Вище.
Рекомендується використовувати NEHotspotHelper ( джерело )
Вам потрібно буде надіслати електронний лист на електронну пошту networkextension@apple.com та надіслати запит на отримання прав. ( джерело )
Приклад коду ( не мій код. Див. Відповідь Пабло А ):
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.