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

13
在iPhone SDK中,我没有看到与Mac OS X上使用的SCDynamicStore相同的内容,用于获取当前连接的无线网络的SSID名称。
有没有办法获取iPhone当前连接的SSID名称?
我看到一些应用程序可以做到这一点(例如Easy Wi-Fi for AT&T),但我找不到在iPhone SDK文档中如何完成此操作的说明。私有或未发布的方法将被接受,只要它是一个概念的证明即可(尽管我知道这可能不会出现在AppStore中)。
3个回答

18

6

在搜索后,我找到了答案。Preferences框架中有未公开的API。可以查看托管在Google Code上的Stumbler代码来了解其示例。

我向苹果提出了一个radar(#6407431 / OpenRadar版本),被标记为#5814810的重复项。如果您希望官方支持此功能,请在bugreport.apple.com上同样提交一个radar。

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


4

试试这段代码:

#import <SystemConfiguration/CaptiveNetwork.h>

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

请注意,您需要在myArray上进行空值检查。 - funroll

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接