转发:['https://www.lookxue.com/blog/e808624e.html']
iOS 获取wifi信息的方法有两种:使用 函数:
iOS 获取wifi信息的方法有两种:
- 使用 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"];
}
}
- 使用 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;
}
}];
}
}];
网友评论