Ответ 1
Теперь это возможно (iOS 4.1+) через Captive Network API.
См. пример использования этого вопроса по этому аналогичному вопросу.
Это не частный API.
В iPhone SDK я не вижу того же SCDynamicStore
, используемого в Mac OS X, чтобы получить имя SSID, к которому подключена ваша беспроводная сеть в настоящее время.
Есть ли способ получить имя SSID, к которому в настоящее время подключен iPhone?
Я вижу, что некоторые приложения делают это (Easy Wi-Fi для AT & T для одного), но я не могу найти, как это делается в iPhone SDK docs. Частный или неопубликованный метод будет приемлемым, как доказательство концепции (хотя я знаю, что, скорее всего, не попадет в AppStore).
Теперь это возможно (iOS 4.1+) через Captive Network API.
См. пример использования этого вопроса по этому аналогичному вопросу.
Это не частный API.
После копания я нашел anser. В рамках настроек есть неопубликованные API. На примерах этого можно посмотреть код Stumbler, размещенный в Google Code.
Я подал радар с Apple (# 6407431/версия OpenRadar), который был помечен как дубликат # 5814810). Если вы хотите, чтобы это официально поддерживалось, пожалуйста, также подайте радар в bugreport.apple.com.
Обновление: вышеупомянутый код Stumbler предназначен для версии 1.x iPhone OS SDK. Для iPhone OS 2.0 и выше разработчикам придется искать в PrivateFrameworks/Apple80211.Framework и все, что это подразумевает.
Попробуйте этот код,
#import <SystemConfiguration/CaptiveNetwork.h>
CFArrayRef myArray = CNCopySupportedInterfaces();
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
NSDictionary *ssidList = (__bridge NSDictionary*)myDict;
NSString *SSID = [ssidList valueForKey:@"SSID"];