728x90
NEHotspotConfigurationManager
- Wi-Fi 네트웤의 핫스팟 구성을 적용하고 제거하는 관리자
- NEHotspotConfiguration을 생성하여 Wi-Fi 연결을 시도할 수 있다.
주의!
앱이 NEHotspotConfigurationManager를 통해 새 핫스판 구성을 만들고 이를 Wi-Fi 네트워크에 적용하거나 이전에 구성된 네트워크를 업데이트하려고 시도하면 기기에서 사용자에게 명시적인 동의를 받아야만 한다. 사용자의 동의가 이뤄지지 않을 경우 동작이 불가하다.
1. 코드 작성전에 Signing & Capabilities에서 '+Capability' 버튼을 눌러 Hotspot Configuration을 추가한다.
2. import!
import NetworkExtension
import SystemConfiguration.CaptiveNetwork
3. NEHotspotConfiguration 변수 생성 및 초기화
let wifiConfiguration = NEHotspotConfiguration(ssid: ssid, passphrase: password, isWEP: false)
4. 네트워크 연결 시도
NEHotspotConfigurationManager.shared.apply(wifiConfiguration) { error in }
NEHotspotConfigurationManager는 shared 싱글톤 인스턴스로 접근하여 apply 메서드를 호출하면 된다.
apply메서드는 Wi-Fi 네트워크 구성을 추가하거나 업데이트 한 다음 네트워크 연결을 시도한다.
순조롭게 위 4번까지 진행하면 NEHotspotConfigurationManager는 시스템팝업을 노출시키며 앱의 Wi-Fi 연결 동의를 얻고 연결이 되는것을 확인할 수 있다.
func apply(_ configuration: NEHotspotConfiguration, completionHandler: ((Error?) -> Void)? = nil)
apply의 완료 해들러는 Wi-Fi의 연결 성공여부를 리턴하지 않는다.
error값은 Wi-Fi에 연결되지 못하더라도 성공여부 관계 없이 nil로 들어오는데,
개발문서에서는 현재 Wi-Fi의 상태를 확인하려면 NEHotspotNetwork의 fetchCurrent(completion...을 사용하여 결과 값을 확인하라고 쓰여있다.
fetchCurrent는 다음 글에서 확인
728x90
'난 iOS개발자 > iOS' 카테고리의 다른 글
현재 네트워크 정보 가져오기 CNCopyCurrentNetworkInfo (0) | 2022.01.07 |
---|---|
NEHotspotNetwork를 이용한 현재 Wi-Fi 상태 가져오기 (0) | 2021.12.20 |
연락처 저장화면 호출하기 CNContactViewController (0) | 2021.07.29 |
UITextField LeftPadding (0) | 2021.07.29 |
Equatable (0) | 2021.07.29 |