Вы можете использовать звонок CNCopySupportedInterfaces().
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);
В моем опыте, вы, как правило, имеют один интерфейс в массиве, который будет либо действительное структуру, если вы подключены или NULL
, если вы не. Тем не менее я допускаю, чтобы цикл for был на всякий случай.
__bridge
литье внутри необходимо, только если вы используете ARC.
Досягаемость также позволила проверить и WiFi. – user523234