首先 引入 Reachability.h 和Reachability.m文件以及#import <SystemConfiguration/CaptiveNetwork.h>
1.判断网络类型
2.获取路由信息
然后调用下getBSSID就可以了
1.判断网络类型
Reachability *r = [Reachability reachabilityWithHostName:@"www.baudu.com"];
switch ([r currentReachabilityStatus]) {
//NSString *wifiName = @"Not Found";
case NotReachable:
// 没有网络连接
NSLog(@"没有网络连接");
break;
case ReachableViaWWAN:
// 使用3G网络
NSLog(@"使用3G网络");
break;
case ReachableViaWiFi:
// 使用WiFi网络
NSLog(@"使用WiFi网络");
break;
}
2.获取路由信息
- (NSString *)getBSSID
{
NSDictionary *ifs = [self fetchSSIDInfo];
NSString *bssid = [[ifs objectForKey:@"BSSID"] uppercaseString];
NSString *bssidValue;
if([bssid isEqualToString:@"UNSUPPORTED"]){
NSLog(@"Simulator doesn't detect wifi, please connect your iPhone!");
bssidValue = @"";
}else{
//第一位为0的时候会被省略掉
//封装第一位为0的情况
NSArray *array=[bssid componentsSeparatedByString:@":"];
NSMutableArray *tempArray = [[NSMutableArray alloc]init];
for(int i = 0; i < [array count]; i++){
if([array[i] length]== 1){
[tempArray addObject:[@"0" stringByAppendingString:[NSString stringWithFormat:@"%@", [array objectAtIndex:i]]]];
}else{
[tempArray addObject:[NSString stringWithFormat:@"%@", [array objectAtIndex:i]]];
}
}
bssidValue = [tempArray componentsJoinedByString:@":"];
}
NSLog(@"bssid=%@",bssidValue);
return bssidValue;
}
- (NSString *)getSSID
{
NSDictionary *ifs = [self fetchSSIDInfo];
NSString *ssid = [ifs objectForKey:@"SSID"];
NSString *ssidValue;
if([[ssid uppercaseString] isEqualToString:@"UNSUPPORTED"]){
NSLog(@"Simulator doesn't detect wifi, please connect your iPhone!");
ssidValue = @"";
}else{
ssidValue = ssid;
}
return ssidValue;
}
- (id)fetchSSIDInfo
{
NSArray *ifs = (__bridge id)CNCopySupportedInterfaces();
NSLog(@"Supported interfaces: %@", ifs);
NSDictionary *info;
if (!ifs) {
info = [NSDictionary dictionaryWithObjectsAndKeys:
@"UNSUPPORTED", @"SSID",
@"UNSUPPORTED", @"BSSID", nil];
} else{
for (NSString *ifnam in ifs) {
info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
NSLog(@"%@ => %@", ifnam, info);
if (info && [info count]) { break; }
}
}
return info;
}
然后调用下getBSSID就可以了
本文介绍了一个iOS应用中检测网络状态并获取WiFi详细信息的方法。通过Reachability类可以判断当前网络是否可达以及网络类型(如3G或WiFi)。此外,还提供了获取当前WiFi的BSSID和SSID的具体实现。
465

被折叠的 条评论
为什么被折叠?



