Come controllare il nome del provider di rete nella programmazione iOS?
-
27-10-2019 - |
Domanda
Devo controllare se il dispositivo è stato collegato correttamente alla rete "My-Wifi" o meno. Se è connesso, invierò alcuni dati al server altrimenti no.
In questo momento sto solo controllando con la connessione Internet, usando la classe di raggiungibilità.
Allora come controllarlo?
Soluzione
Puoi fare uso di CncopysupportedInterfaces () chiamata.
CFArrayRef interfaces = CNCopySupportedInterfaces();
CFIndex count = CFArrayGetCount(interfaces);
for (int i = 0; i < count; i++) {
CFStringRef interface = CFArrayGetValueAtIndex(interfaces, i);
CFDictionaryRef netinfo = CNCopyCurrentNetworkInfo(interface);
if (netinfo && CFDictionaryContainsKey(netinfo, kCNNetworkInfoKeySSID)) {
NSString *ssid = (__bridge NSString *)CFDictionaryGetValue(netinfo, kCNNetworkInfoKeySSID);
// Compare with your needed ssid here
}
if (netinfo)
CFRelease(netinfo);
}
CFRelease(interfaces);
Nella mia esperienza, di solito avrai un'interfaccia nell'array che sarebbe una struttura valida se sei connesso o NULL
Se non lo sei. Tuttavia, ho lasciato che il ciclo sia lì per ogni evenienza.
Il __bridge
Il cast all'interno è necessario solo se stai usando l'arco.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow