在当前快速发展的时代,万物互联是大趋势。在物联网开发中,对设备进行配网时需要打开手机的WiFi功能,并且连接上相应的WiFi热点,把WiFi名称和密码通过TCP或UDP的方式发送给设备。设备接入到WiFi名称和密码后就可以连接上WiFi,将设备注册到云端,从而实现设备上云。那么在iOS中,我们是如何获取手机当前连接的WiFi信息呢?
1. 获取SSID_WIFI名称
+ (NSString *)getWifiSSID {
NSString *ssid = nil;
CFArrayRef arrRef = CNCopySupportedInterfaces();
NSArray *ifs = (__bridge id)arrRef;
for (NSString *ifnam in ifs) {
CFDictionaryRef dicRef = CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
NSDictionary *info = (__bridge id)dicRef;
if (info[@"BSSID"]) {
ssid = info[@"SSID"];
}
if(dicRef !=nil) {
CFRelease(dicRef);
}
}
if(arrRef != nil) {
CFRelease(arrRef);
}
return ssid;
}
2. 获取BSSID---WIFI的MAC
+ (NSString *)getWifiBSSID {
NSString *bssid = @"";
CFArrayRef arrRef = CNCopySupportedInterfaces();
NSArray *ifs = (__bridge id)arrRef;
for(NSString *ifnam in ifs) {
CFDictionaryRef dicRef = CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
NSDictionary *info = (__bridge id)dicRef;
if (info[@"BSSID"]) {
bssid = info[@"BSSID"];
}
if (dicRef != nil) {
CFRelease(dicRef);
}
}
if (arrRef != nil) {
CFRelease(arrRef);
}
return bssid;
}
需要注意
iOS中要获取手机当前连接的WiFi信息,iOS13.0之后必须先打开定位权限,iOS14.0之后还要打开精准位置,然后去设置App连接上的WiFi。