如何获得iOS6的可用SSID列表



x,有api关于我的要求,但它似乎变成了私人在5。它似乎在6.x中被删除了。(实际上它似乎不能在沙盒中调用)

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

这段代码可以很好地获取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>;

}

我相信这是没有解决办法的。原因是:

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

这个消息还没有得到苹果公司的证实,但是我很确定。

最新更新