UPDATE FÜR iOS 10 und höher
CNCopySupportedInterfaces ist in iOS 10 nicht mehr veraltet. ( API-Referenz )
Sie müssen SystemConfiguration / CaptiveNetwork.h importieren und SystemConfiguration.framework zu den verknüpften Bibliotheken Ihres Ziels hinzufügen (in Erstellungsphasen).
Hier ist ein Code-Snippet in Kürze (RikiRiocmas Antwort) :
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
}
}
( Wichtig: CNCopySupportedInterfaces gibt im Simulator null zurück.)
Für Ziel-c siehe Esads Antwort hier und unten
+ (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;
}
UPDATE FÜR iOS 9
Ab iOS 9 ist Captive Network veraltet *. ( Quelle )
* In iOS 10 nicht mehr veraltet, siehe oben.
Es wird empfohlen, NEHotspotHelper ( Quelle ) zu verwenden.
Sie müssen Apple eine E-Mail an networkextension@apple.com senden und Berechtigungen anfordern. ( Quelle )
Beispielcode ( Nicht mein Code. Siehe Antwort von 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;
}
Randnotiz: Ja, sie haben CNCopySupportedInterfaces in iOS 9 abgelehnt und ihre Position in iOS 10 umgekehrt. Ich habe mit einem Apple-Netzwerktechniker gesprochen, und die Umkehrung erfolgte, nachdem so viele Leute Radars eingereicht und in den Apple Developer-Foren über das Problem gesprochen hatten.