美文网首页
获取Wifi SSID(名称)的方法以及可能出现的问题

获取Wifi SSID(名称)的方法以及可能出现的问题

作者: 彦_d28f | 来源:发表于2019-10-18 13:18 被阅读0次

    首先先列一下获取SSID的代码:OC

    /**

     获取WiFi信息

    @return WiFi MAC地址

     */

    +(NSString *)fetchBSSIDInfo{

        NSString*currentSSID =@"Not Found";

        CFArrayRef myArray = CNCopySupportedInterfaces();

        if(myArray !=nil){

            NSDictionary* myDict = (__bridge NSDictionary *) CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));        if(myDict!=nil){

                currentSSID = [myDictvalueForKey:@"BSSID"];

           }else{

                currentSSID=@"<<NONE>>";

            }

       }else{

            currentSSID=@"<<NONE>>";

        }

        NSArray*array = [currentSSIDcomponentsSeparatedByString:@":"];

        NSMutableArray*ssidArray = [[NSMutableArrayalloc]initWithArray:array];

        for(NSIntegeri=0; i

            NSString*str = array[i];

            NSString*charStr;

            if(str.length==1) {

                charStr = [NSStringstringWithFormat:@"0%@",str];

                [ssidArrayreplaceObjectAtIndex:iwithObject:charStr];

            }

        }

        NSString*ssid =@"";

        for(NSIntegeri=0; i

            NSString*str;

            if(i == ssidArray.count-1) {

                str = [NSStringstringWithFormat:@"%@",ssidArray[i]];

            }else{

                str = [NSStringstringWithFormat:@"%@:",ssidArray[i]];

            }

            ssid = [ssidstringByAppendingString:str];

        }

        if([UtilityisEmpty:ssid]) {

            ssid =@"<<NONE>>";

        }

       returnssid;

    }

    /**

     获取WiFi信息

     @return WiFi名称

     */

    +(NSString *)fetchSSIDInfo{

        NSString*currentSSID =@"Not Found";

        CFArrayRef myArray = CNCopySupportedInterfaces();

        if(myArray !=nil){

            NSDictionary* myDict = (__bridge NSDictionary *) CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));        if(myDict!=nil){

                currentSSID=[myDictvalueForKey:@"SSID"];

           }else{

                currentSSID=@"<<NONE>>";

            }

        }else{

            currentSSID=@"<<NONE>>";

        }

        return currentSSID;

    }

    但是在iOS 12.0 + 之后,苹果官方增加了获取wifi的权限,具体说明可以查看 CNCopyCurrentNetworkInfo 的官方文档说明

    打开开关的方式有两种:

     1 )Xcode11.1

    这种方式最简单,Xcode -> Targets -> Capabilities,如下图所示,直接点击打开

    打开之后Xcode也会同步到AppID的设置

    ( 2 )Apple Developer(苹果开发者中心

    操作步骤如下图:(用第一种方法(Xcode)操作的话,Xcode也会自动同步状态到开发者中心对应AppID的开关的)

    相关文章

      网友评论

          本文标题:获取Wifi SSID(名称)的方法以及可能出现的问题

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