【发布时间】:2012-03-09 16:15:55
【问题描述】:
我需要检查设备是否已正确连接到“My-Wifi”网络。如果它已连接,那么我将向服务器发送一些数据,否则不会。
现在我正在使用 Reachability 类检查 Internet 连接。
那么如何检查呢?
【问题讨论】:
-
Reachability 也允许检查 WiFi。
标签: ios client-server wifi network-connection
我需要检查设备是否已正确连接到“My-Wifi”网络。如果它已连接,那么我将向服务器发送一些数据,否则不会。
现在我正在使用 Reachability 类检查 Internet 连接。
那么如何检查呢?
【问题讨论】:
标签: ios client-server wifi network-connection
您可以使用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。
【讨论】: