2

在 iOS 4.x 中,有关于我的要求的 API,但在 5.x 中似乎更改为私有,并且在 6.x 中似乎已删除。(其实沙箱里好像不能调用)

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

4

2 回答 2

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>;

}

于 2013-07-14T21:32:06.407 回答
2

我相信对此没有解决方案。原因是:

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

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

于 2013-04-05T01:16:06.747 回答