Notice
Recent Posts
Recent Comments
Link
투케이2K
180. (Objective-C/objc) [간단 소스] NEHotspotConfigurationManager 사용해 특정 와이파이 SSID , PW 입력 후 다이렉트 AP 연결 본문
Objective-C
180. (Objective-C/objc) [간단 소스] NEHotspotConfigurationManager 사용해 특정 와이파이 SSID , PW 입력 후 다이렉트 AP 연결
투케이2K 2025. 2. 1. 10:24[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : OBJECTIVE-C
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Objective-c
- 개발 툴 : Xcode
- 기술 구분 : 간단 소스 / NEHotspotConfigurationManager / WIFI / AP / SSID / PW
- 사전 권한 설정 : info.plist
<key>NSLocationWhenInUseUsageDescription</key>
<string>앱에서 Wi-Fi 연결을 설정하려면 위치 권한이 필요합니다.</string>
- 사전 Xcode 프로젝트에서 유료 결제 개발자 계정 사용 Capabillity Hotspot Configuration 사용 설정
>> https://blog.naver.com/kkh0977/223669166907
- 사전 Xcode 프로젝트에서 Capabillity 개발 권한 추가 entitlements 속성 key , value 값 확인 방법
>> https://blog.naver.com/kkh0977/223669259799
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[호출 방법 소스 코드]
// --------------------------------------------------------------------------------------
// [WiFiManager 클래스 객체 생성 수행]
WiFiManager *wifiManager = [[WiFiManager alloc] init];
// [특정 WIFI 와이파이 SSID , PW 지정 후 다이렉트 연결 수행]
[wifiManager connectToWiFiWithSSID:@"TwokSSID" password:@"TwokPassword" isWEP:NO];
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[클래스 소스 코드]
// --------------------------------------------------------------------------------------
#import <Foundation/Foundation.h>
#import <NetworkExtension/NetworkExtension.h>
@interface WiFiManager : NSObject
- (void)connectToWiFiWithSSID:(NSString *)ssid password:(NSString *)password isWEP:(BOOL)isWEP;
@end
@implementation WiFiManager
// [특정 와이파이 SSID , PW 입력해 다이렉트 AP 연결 수행]
- (void)connectToWiFiWithSSID:(NSString *)ssid password:(NSString *)password isWEP:(BOOL)isWEP {
// [Ios 11 이상 사용 가능 분기 처리]
if (@available(iOS 11.0, *)) {
// [Wi-Fi 구성 생성]
NEHotspotConfiguration *configuration;
if (password.length > 0) {
configuration = [[NEHotspotConfiguration alloc] initWithSSID:ssid passphrase:password isWEP:isWEP];
} else {
configuration = [[NEHotspotConfiguration alloc] initWithSSID:ssid];
}
// [자동 연결 설정]
configuration.joinOnce = NO; // [YES 로 설정하면 한 번만 연결]
// [Wi-Fi 연결]
[[NEHotspotConfigurationManager sharedManager] applyConfiguration:configuration completionHandler:^(NSError * _Nullable error) {
if (error != nil) {
if ([error.domain isEqualToString:NEHotspotConfigurationErrorDomain] && error.code == NEHotspotConfigurationErrorAlreadyAssociated) {
NSLog(@"WiFiManager :: connectToWiFiWithSSID :: 이미 해당 Wi-Fi 에 연결되어 있습니다 :: %@", ssid);
} else {
NSLog(@"WiFiManager :: connectToWiFiWithSSID :: Wi-Fi 연결 오류 :: %@", error.localizedDescription);
}
} else {
NSLog(@"WiFiManager :: connectToWiFiWithSSID :: Wi-Fi 연결 성공 :: %@", ssid);
}
}];
} else {
NSLog(@"WiFiManager :: connectToWiFiWithSSID :: iOS 11 이상에서만 지원됩니다");
}
}
@end
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[Ios] 기기 QR 스캔 및 스키마 scheme 정보 활용 다이렉트 AP 연결 로직
https://blog.naver.com/kkh0977/223646728115?trackingCode=blog_bloghome_searchlist
[NEHotspotConfigurationManager 간단 설명 및 사용 옵션 정리]
https://blog.naver.com/kkh0977/223679071590?trackingCode=blog_bloghome_searchlist
[NEHotspotConfigurationManager 사용해 특정 WIFI 와이파이 다이렉트 연결 및 에러 발생 체크 분기 처리 수행]
https://blog.naver.com/kkh0977/223669296624?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형
'Objective-C' 카테고리의 다른 글
Comments