Может ли iPhone SDK получить SSID Wi-Fi, к которому в данный момент подключен? - PullRequest
13 голосов
/ 04 декабря 2008

В iPhone SDK я не вижу того же SCDynamicStore, который используется в Mac OS X для получения имени SSID, к которому ваша беспроводная сеть в данный момент подключена, недоступно.

Есть ли способ получить имя SSID, к которому сейчас подключен iPhone?

Я вижу, что некоторые приложения делают это ( Простой Wi-Fi для AT & T для одного), но я не могу найти, как это делается в документах iPhone SDK. Приватный или неопубликованный метод был бы приемлем в качестве доказательства концепции (хотя я знаю, что, скорее всего, он не попадет в AppStore).

Ответы [ 3 ]

18 голосов
/ 13 июня 2012

Теперь это возможно (iOS 4.1+) через API-интерфейс Captive Network .

См. пример того, как использовать его в этом похожем вопросе .

Это не частный API.

6 голосов
/ 18 декабря 2008

Покопавшись, я нашел ответ на этот вопрос. В структуре предпочтений есть неопубликованные API. Примеры этого можно посмотреть в коде Stumbler , размещенном в Google Code.

Я подал радар в Apple (# 6407431 / версия OpenRadar ), который был отмечен как дубликат # 5814810). Если вы хотите, чтобы это официально поддерживалось, пожалуйста, также отправьте радар по адресу bugreport.apple.com .

Обновление: приведенный выше код Stumbler предназначен для iPhone OS SDK версии 1.x. Для iPhone OS 2.0 и выше разработчики должны будут искать в PrivateFrameworks / Apple80211.Framework и все, что подразумевает.

4 голосов
/ 28 ноября 2014

Попробуйте этот код,

#import <SystemConfiguration/CaptiveNetwork.h>

CFArrayRef myArray = CNCopySupportedInterfaces();
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
NSDictionary *ssidList = (__bridge NSDictionary*)myDict;
NSString *SSID = [ssidList valueForKey:@"SSID"];
...