我需要检查设备是否已正确连接到“My-Wifi”网络。如果已连接,则我将向服务器发送一些数据,否则不会发送。
现在,我只是在使用Reachability类检查Internet连接。
那么如何检查呢?
最佳答案
您可以使用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循环出现,以防万一。仅当您使用ARC时,才需要强制转换内部的
__bridge
。