版权声明:本文为博主原创文章,转载请附上本文链接地址。from : https://blog.csdn.net/lovechris00 https://blog.csdn.net/lovechris00/article/details/84870160
SSID 全称 Service Set IDentifier
CNCopySupportedInterfaces 核心代码
- (void)testWifiInfo{
NSDictionary *currentWifiInfo = nil;
// 获取当前的interface 数组
// CNCopyCurrentNetworkInfo()
CFArrayRef currentInterfaces = CNCopySupportedInterfaces();
if (!currentInterfaces) {
return ;
}
NSArray *interfaces = (__bridge NSArray *)(currentInterfaces);
//无论是否开启WiFi,都会显示 WiFi 网卡 bsd name;无论是否连接有线,都不显示有线网卡
NSLog(@"interfaces : %@",interfaces);
/*
interfaces : (
en1
)
*/
if (interfaces.count >0) {
for (NSString *interfaceName in interfaces) {
// 转换类型,不改变引用计数
// CFDictionaryRef dictRef = CNCopyCurrentNetworkInfo((__bridge CFStringRef)interfaceName);
//
// if (dictRef) {
// NSDictionary *networkInfo = (__bridge NSDictionary *)dictRef;
//
// NSString *SSID = [networkInfo objectForKey:(__bridge NSString *)kCNNetworkInfoKeySSID];
//
// NSString *BSSID = [networkInfoobjectForKey:(__bridge NSString *)kCNNetworkInfoKeyBSSID];
//
// NSData *SSIDDATA = [networkInfoobjectForKey:(__bridge NSData *)kCNNetworkInfoKeySSIDData];
//
// currentWifiInfo = @{@"SSID":SSID,
// @"BSSID":BSSID,
// @"SSIDDATA":SSIDDATA};
}
}
// NSLog(@"currentWifiInfo = %@",currentWifiInfo);
}
CNCopyCurrentNetworkInfo 在 iOS 可用,在 Mac 不可用
当在 Mac 上使用 CNCopyCurrentNetworkInfo 时,会提示:
'CNCopyCurrentNetworkInfo' is unavailable: not available on macOS
前往查看 CNCopyCurrentNetworkInfo 定义时,会发现:
CFDictionaryRef __nullable
CNCopyCurrentNetworkInfo (CFStringRef interfaceName) __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_1);
注意这里标记了 __MAC_NA