此篇主要记录我自己在做iOS12的时候碰到的问题。
一、获取Wi-Fi的Mac(BSSID)地址失败
有些人可能会搜索为什么CNCopySupportedInterfaces或CNCopyCurrentNetworkInfo在iOS12中不能用了,获取的值全部变成空了。
先贴代码
NSArray *ifs = CFBridgingRelease(CNCopySupportedInterfaces());
id info = nil;
for (NSString *ifname in ifs) {
info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((CFStringRef)ifname);
if (info && [info count]) {
break;
}
}
NSDictionary *dic = (NSDictionary *)info;
NSString *ssid = [dic objectForKey:@"SSID"];
NSString *bssid = [[dic objectForKey:@"BSSID"] lowercaseString];
//补0操作可以不要
if (bssid.length > 0) {
NSArray *arr = [bssid componentsSeparatedByString:@":"];
NSMutableArray *newArr = [NSMutableArray arrayWithCapacity:arr.count];
for (NSString *subStr in arr) {
if (subStr.length == 1) {
[newArr addObject:[NSString stringWithFormat:@"0%@",subStr]];
}
else {
[newArr addObject:subStr];
}
}
bssid = [newArr componentsJoinedByString:@":"];
}
NSLog(@"ssid = %@, bssid = %@",ssid,bssid);
在iOS11及一下这里打印是有值的,但是升级了iOS12后就全空了。网上翻遍了也没找到为什么,可能用的人也不多。
终于在苹果官方的开发文档找到了。
就是说要在Xcode中打开允许访问Wi-Fi信息。参考图2
图2
目前就这些,以后遇到了再补充吧!
网友评论