生活随笔
收集整理的這篇文章主要介紹了
iOS 获取wifi ssid 名称
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SSID全稱Service Set IDentifier, 即Wifi網絡的公開名稱.在IOS 4.1以上版本提供了公開的方法來獲取該信息.
[html]?view plaincopy
#import?<SystemConfiguration/CaptiveNetwork.h>??
[html]?view plaincopy
-(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 信息 :
[html]?view plaincopy
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 版本:
[html]?view plaincopy
-?(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;?? }??
? 效果如下:
補充:------此方法也未必通過審核------------------
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | + (id)fetchSSIDInfo { ????NSArray*ifs = (id)CNCopySupportedInterfaces(); ????NSLog(@"%s: Supported interfaces: %@", __func__, ifs); ????idinfo = nil; ????for(NSString*ifnam in ifs) { ????????info = (id)CNCopyCurrentNetworkInfo((CFStringRef)ifnam); ????????if(info && [info count]) { ????????????break; ????????} ????????[info release]; ????} ????[ifs release]; ????return[info autorelease]; } |
? | 1 2 3 4 | //check wifi sid ????????NSDictionary*ifs = [BaseFunction fetchSSIDInfo]; ????????NSString*ssid = [[ifs objectForKey:@"SSID"] lowercaseString]; ????????debug_NSLog(@"ssid:%@",ssid); |
記得增加:
#import <SystemConfiguration/CaptiveNetwork.h>
//首先添加框架首先添加框架:SystemConfiguration.framework?
如果你不考慮提交App Store審核問題
可以看看這個項目庫
http://code.google.com/p/iphone-wireless/?
總結
以上是生活随笔為你收集整理的iOS 获取wifi ssid 名称的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。