iOS获取手机当前连接的WIFI信息

2023-07-31  本文已影响0人  Mr_Jee

在当前快速发展的时代,万物互联是大趋势。在物联网开发中,对设备进行配网时需要打开手机的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。

上一篇下一篇

猜你喜欢

热点阅读