1

デバイスが「My-Wifi」ネットワークに正しく接続されているかどうかを確認する必要があります。接続されている場合は、サーバーにデータを送信します。それ以外の場合は送信しません。

現在、到達可能性クラスを使用して、インターネット接続を確認しています。

では、それを確認する方法は?

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);

私の経験では、通常、アレイ内に1つのインターフェイスがあります。これは、接続している場合と接続していない場合のいずれかで有効な構造になりますNULL。それでも、万が一の場合に備えて、forループをそこに置いておきます。

内部の__bridgeキャストは、ARCを使用している場合にのみ必要です。

于 2012-02-18T15:45:44.900 に答える