前置條件
1.付費蘋果開發(fā)者賬號
2.開發(fā)者中心申請使用Hotspot 和 WiFi information 的權(quán)限配置
在開發(fā)者中心 配置Hotspot 和 WiFi information 的權(quán)限
在Xcode 項目 配置Hotspot 和 WiFi information 的權(quán)限
在Xcode 項目 導(dǎo)入相關(guān)靜態(tài)庫
代碼實現(xiàn)
導(dǎo)入頭文件
#import <NetworkExtension/NetworkExtension.h>
#import<SystemConfiguration/CaptiveNetwork.h>
連接WiFi
//1姨蟋、app切換連接到對應(yīng)WiFi:
NEHotspotConfiguration * conWiFi = [[NEHotspotConfiguration alloc] initWithSSID:@"WiFi名稱" passphrase:@"WiFi密碼" isWEP:NO];
[[NEHotspotConfigurationManager sharedManager] applyConfiguration:conWiFi completionHandler:^(NSError * _Nullable error) {
if (error) {
if (error.code == NEHotspotConfigurationErrorAlreadyAssociated) {
//已連接
NSLog(@"WiFi 連接成功");
}
else if (error.code == NEHotspotConfigurationErrorUserDenied) {
//用戶點擊取消
NSLog(@"WiFi 用戶點擊取消");
}
else{
NSLog(@"WiFi 錯誤");
}
}
}];
獲取配置過的WiFi列表
//2续挟、獲取配置過的WIFI列表:
if (@available(iOS 11.0, *)) {
[[NEHotspotConfigurationManager sharedManager] getConfiguredSSIDsWithCompletionHandler:^(NSArray * array) {
NSLog(@"WiFi 列表 %@",array);
}];
}
獲取已連接WiFi名
//3斤贰、獲取手機連接的WiFi列表:
NSLog(@"已連接WiFi-%@",[self obtainWiFiName]);
- (NSString *)obtainWiFiName
{
NSString *ssid = @"Not Found";
CFArrayRef myArray = CNCopySupportedInterfaces();
if (myArray != nil) {
CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0));
if (myDict != nil) {
NSDictionary *dict = (NSDictionary*)CFBridgingRelease(myDict);
ssid = [dict valueForKey:@"SSID"];
}
}
return ssid;
}