提问人:danimal 提问时间:12/4/2008 最后编辑:Natedanimal 更新时间:6/29/2016 访问量:31766
iPhone SDK 可以获取当前连接的 Wi-Fi SSID 吗?
Can the iPhone SDK obtain the Wi-Fi SSID currently connected to?
问:
在iPhone SDK中,我没有看到Mac OS X上用于获取当前无线网络连接到的SSID名称的相同方法不可用。SCDynamicStore
有没有办法获取iPhone当前连接到的SSID名称?
我看到一些应用程序做到了这一点(AT&T的Easy Wi-Fi就是这样),但我在iPhone SDK文档中找不到它是如何完成的。私有或取消发布方法是可以接受的,只是作为概念证明(尽管我知道这可能不会进入 AppStore)。
答:
6赞
danimal
12/18/2008
#1
在四处挖掘之后,我找到了答案。首选项框架中存在未发布的 API。有关这方面的示例,可以查看托管在 Google Code 上的 Stumbler 代码。
我向 Apple 提交了一个雷达(#6407431/OpenRadar 版本),该雷达被标记为 #5814810 的副本)。如果您希望获得官方支持,那么请在 bugreport.apple.com 提交雷达。
更新:上面的 Stumbler 代码适用于 1.x 修订版 iPhone OS SDK。对于 iPhone OS 2.0 及更高版本,开发人员必须查看 PrivateFrameworks/Apple80211.Framework 以及所有暗示的内容。
18赞
Nate
6/13/2012
#2
现在可以通过强制网络 API 实现 (iOS 4.1+)。
这不是私有 API。
4赞
MSA
11/28/2014
#3
试试这段代码,
#import <SystemConfiguration/CaptiveNetwork.h>
CFArrayRef myArray = CNCopySupportedInterfaces();
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
NSDictionary *ssidList = (__bridge NSDictionary*)myDict;
NSString *SSID = [ssidList valueForKey:@"SSID"];
评论
0赞
funroll
1/14/2015
请注意,您需要对 myArray 进行 null 检查
评论