Как проверить имя сетевого провайдера в iOS-программировании? - PullRequest
1 голос
/ 18 февраля 2012

Мне нужно проверить, правильно ли подключено устройство к сети «My-Wifi» или нет. Если он подключен, я отправлю некоторые данные на сервер, иначе нет.

Сейчас я просто проверяю соединение с Интернетом, используя класс Reachability.

Так как это проверить?

1 Ответ

2 голосов
/ 18 февраля 2012

Вы можете использовать CNCopySupportedInterfaces () call.

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.

...