如何获得iOS6的SSID列表

时间:2013-03-18 01:20:12

标签: iphone ios6 wifi ssid

在iOS 4.x中,有关于我的要求的API,但它似乎在5.x中变为私有,并且似乎在6.x中删除了。 (实际上似乎无法在沙盒中调用)

获取802.11的SSID列表对于我们的新项目非常重要。

2 个答案:

答案 0 :(得分:3)

此代码可以很好地获取SSID。

#import <SystemConfiguration/CaptiveNetwork.h>

@implementation IODAppDelegate

@synthesize window = _window;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{


CFArrayRef myArray = CNCopySupportedInterfaces();
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
NSLog(@"Connected at:%@",myDict);
NSDictionary *myDictionary = (__bridge_transfer NSDictionary*)myDict;
NSString * BSSID = [myDictionary objectForKey:@"BSSID"];
NSLog(@"bssid is %@",BSSID);
// Override point for customization after application launch.
return YES;
}

这就是结果:

Connected at:{
BSSID = 0;
SSID = "Eqra'aOrange";
SSIDDATA = <45717261 27614f72 616e6765>;

}

答案 1 :(得分:2)

我认为没有解决方案。原因是:

即使是用户禁用位置服务,访问SSID列表的应用程序(实际上是BSSID)也可以使用skyhook或类似的解决方案来推断用户的位置。

此信息未经Apple确认,但我对此非常肯定。