본문 바로가기

난 iOS개발자/iOS

NEHotspotConfigurationManager를 이용한 Wi-Fi 연결하기

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