在當(dāng)前快速發(fā)展的時(shí)代睛榄,萬(wàn)物互聯(lián)是大趨勢(shì)。在物聯(lián)網(wǎng)開(kāi)發(fā)中港准,對(duì)設(shè)備進(jìn)行配網(wǎng)時(shí)需要打開(kāi)手機(jī)的WiFi功能,并且連接上相應(yīng)的WiFi熱點(diǎn)浅缸,把WiFi名稱(chēng)和密碼通過(guò)TCP或UDP的方式發(fā)送給設(shè)備。設(shè)備接入到WiFi名稱(chēng)和密碼后就可以連接上WiFi蚌父,將設(shè)備注冊(cè)到云端毛萌,從而實(shí)現(xiàn)設(shè)備上云。那么在iOS中膏秫,我們是如何獲取手機(jī)當(dāng)前連接的WiFi信息呢缤削?
1. 獲取SSID_WIFI名稱(chēng)
+ (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中要獲取手機(jī)當(dāng)前連接的WiFi信息亭敢,iOS13.0之后必須先打開(kāi)定位權(quán)限图筹,iOS14.0之后還要打開(kāi)精準(zhǔn)位置,然后去設(shè)置App連接上的WiFi劝篷。