您的位置:首页 > 移动开发 > IOS开发

iOS 获取wifi ssid 名称

2013-06-05 21:39 441 查看
SSID全称Service Set IDentifier, 即Wifi网络的公开名称.在IOS 4.1以上版本提供了公开的方法来获取该信息.

#import <SystemConfiguration/CaptiveNetwork.h>

-(id)fetchSSIDInfo
{
NSArray *ifs = (id)CNCopySupportedInterfaces();
NSLog(@"%s: Supported interfaces: %@", __func__, ifs);
id info = nil;
for (NSString *ifnam in ifs) {
info = (id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
if (info && [info count]) {
break;
}
[info release];
}
[ifs release];
return [info autorelease];
}

- (NSString *)currentWifiSSID {
// Does not work on the simulator.
NSString *ssid = nil;
NSArray *ifs = (  id)CNCopySupportedInterfaces();
NSLog(@"ifs:%@",ifs);
for (NSString *ifnam in ifs) {
NSDictionary *info = (id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam);
NSLog(@"dici:%@",[info  allKeys]);
if (info[@"SSIDD"]) {
ssid = info[@"SSID"];

}
}
return ssid;
}

- (void)viewDidLoad
{
[super viewDidLoad];

tempLabel=[[UILabel alloc]initWithFrame:CGRectMake(50, 40, 200, 40)];
tempLabel.textAlignment=NSTextAlignmentCenter;
[self.view addSubview:tempLabel];
NSDictionary *ifs = [self fetchSSIDInfo];
NSString *ssid = [[ifs objectForKey:@"SSID"] lowercaseString];
tempLabel.text=ssid;

}


log 信息 :

2013-06-05 21:39:14.357 wifiNameDemo[9877:707] dici:{
BSSID = "f4:ec:38:40:cc:e8";
SSID = "Nice_Apple";
SSIDDATA = <4e696365 5f417070 6c65>;
}
2013-06-05 21:39:14.360 wifiNameDemo[9877:707] Nice_Apple


 ARC 版本:

- (id)fetchSSIDInfo {
NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
NSLog(@"Supported interfaces: %@", ifs);
id info = nil;
for (NSString *ifnam in ifs) {
info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
NSLog(@"%@ => %@", ifnam, info);
if (info && [info count]) { break; }
}
return info;
}


  效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: