iOS 获取wifi信息

2024-02-05  本文已影响0人  LV大树

转发:['https://www.lookxue.com/blog/e808624e.html']
iOS 获取wifi信息的方法有两种:使用 函数:

iOS 获取wifi信息的方法有两种:

  1. 使用 CNCopyCurrentNetworkInfo 函数:

该函数可以获取当前连接的 wifi 信息,包括 SSID、BSSID、SSIDDATA 等,但是需要在 info.plist 文件中添加 Privacy - Wireless Accessory Configuration 和 Privacy - Wi-Fi Information 两个权限,代码如下:

// 引入头文件

#import 

// 获取wifi信息

CFArrayRef myArray = CNCopySupportedInteces();
if (myArray != nil) {
    CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));

    if (myDict != nil) {

        NSDictionary *dict = (NSDictionary*)CFBridgingRelease(myDict);

        // 获取 wifi 信息

        NSString *ssid = [dict valueForKey:@"SSID"];

        NSString *bssid = [dict valueForKey:@"BSSID"];

        NSData *ssidData = [dict valueForKey:@"SSIDDATA"];

    }

}
  1. 使用 NEHotspotHelper 库:

NEHotspotHelper 是 iOS 8 之后提供的一个库,可以用于获取 wifi 信息,不需要在 info.plist 文件中添加任何权限,但是需要在项目中添加 NetworkExtension.framework 库,代码如下:

// 引入头文件

#import 

// 获取wifi信息

[[NEHotspotHelper sharedHelper] registerWithOptions:nil completion:^(NSError * _Nullable error) {

    if (error == nil) {

        [[NEHotspotHelper sharedHelper] listSupportedNetworkIntecesWithCompletionHandler:^(NSArray * _Nonnull networks) {

            for (NEHotspotNetwork *network in networks) {

                // 获取 wifi 信息

                NSString *ssid = network.SSID;

                NSString *bssid = network.BSSID;

                NSData *ssidData = network.SSIDData;

            }

        }];

    }

}];
上一篇下一篇

猜你喜欢

热点阅读