iPhone SDK可以获取当前连接的Wi-Fi SSID吗?

时间:2008-12-03 23:12:22

标签: iphone ios wifi

在iPhone SDK中,我没有看到Mac OS X上使用的SCDynamicStore相同,以获取您的无线网络当前连接的SSID名称不可用。

有没有办法获取iPhone当前连接的SSID名称?

我看到一些应用程序执行此操作(Easy Wi-Fi for AT&T为一个)但我无法在iPhone SDK文档中找到它是如何完成的。私有或取消发布的方法可以作为概念证明(虽然我知道可能不会进入AppStore)。

3 个答案:

答案 0 :(得分:18)

现在可以通过Captive Network API来实现(iOS 4.1+)。

请参阅an example of how to use it on this similar question

这不是私有API。

答案 1 :(得分:6)

在挖掘之后,我发现了这个问题。 Preferences框架中有未发布的API。有关此示例,请查看Google代码上托管的Stumbler code

我向Apple提交了一个雷达(#6407431 / OpenRadar version),标记为#5814810的副本。如果您希望获得官方支持,请同时在bugreport.apple.com提交雷达。

更新:以上Stumbler代码适用于1.x版本的iPhone OS SDK。对于iPhone OS 2.0及更高版本,开发人员必须查看PrivateFrameworks / Apple80211.Framework以及所有这些内容。

答案 2 :(得分:4)

试试这段代码,

#import <SystemConfiguration/CaptiveNetwork.h>

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