1

我需要检查设备是否已正确连接到“My-Wifi”网络。如果它已连接,那么我将向服务器发送一些数据,否则不会。

现在我只是使用 Reachability 类检查 Internet 连接。

那么如何检查呢?

4

1 回答 1

2

您可以使用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 时才需要内部铸件。

于 2012-02-18T15:45:44.900 回答