美文网首页
iOS获取手机当前连接的WIFI信息

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

作者: Mr_Jee | 来源:发表于2023-07-31 17:36 被阅读0次

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

    相关文章

      网友评论

          本文标题:iOS获取手机当前连接的WIFI信息

          本文链接:https://www.haomeiwen.com/subject/wagepdtx.html