在 iPhone SDK 中,我没有看到SCDynamicStore
在 Mac OS X 上使用相同的方法来获取无线网络当前连接的 SSID 名称不可用。
有没有办法获取 iPhone 当前连接的 SSID 名称?
我看到一些应用程序可以做到这一点(其中一个是 AT&T 的 Easy Wi-Fi),但我在 iPhone SDK 文档中找不到它是如何完成的。私有或取消发布方法作为概念证明是可以接受的(尽管我知道这可能不会进入 AppStore)。
在 iPhone SDK 中,我没有看到SCDynamicStore
在 Mac OS X 上使用相同的方法来获取无线网络当前连接的 SSID 名称不可用。
有没有办法获取 iPhone 当前连接的 SSID 名称?
我看到一些应用程序可以做到这一点(其中一个是 AT&T 的 Easy Wi-Fi),但我在 iPhone SDK 文档中找不到它是如何完成的。私有或取消发布方法作为概念证明是可以接受的(尽管我知道这可能不会进入 AppStore)。
在四处挖掘之后,我找到了这个问题的答案。Preferences 框架中有未发布的 API。有关此示例,可以查看托管在 Google Code 上的Stumbler 代码。
我向 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"];