13

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

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

我看到一些应用程序可以做到这一点(其中一个是 AT&T 的 Easy Wi-Fi),但我在 iPhone SDK 文档中找不到它是如何完成的。私有或取消发布方法作为概念证明是可以接受的(尽管我知道这可能不会进入 AppStore)。

4

3 回答 3

18

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

在这个类似的问题上查看如何使用它的示例

这不是私有 API。

于 2012-06-13T10:29:57.657 回答
6

在四处挖掘之后,我找到了这个问题的答案。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 以及所有暗示。

于 2008-12-17T21:15:13.247 回答
4

试试这个代码,

#import <SystemConfiguration/CaptiveNetwork.h>

CFArrayRef myArray = CNCopySupportedInterfaces();
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
NSDictionary *ssidList = (__bridge NSDictionary*)myDict;
NSString *SSID = [ssidList valueForKey:@"SSID"];
于 2014-11-28T15:23:32.920 回答