투케이2K

593. (ios/swift5) [간단 소스] NEHotspotNetwork 간단 설명 및 사용 옵션 정리 본문

IOS

593. (ios/swift5) [간단 소스] NEHotspotNetwork 간단 설명 및 사용 옵션 정리

투케이2K 2024. 12. 1. 20:54

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Swift


- 개발 툴 : Xcode


- 기술 구분 : NEHotspotNetwork / WIFI / Hotstop

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------

1. NEHotspotNetwork 은 명령이나 응답과 관련된 Wi-Fi 네트워크에 대한 정보입니다


2. NEHotspotNetwork 사용 가능한 지원 범위 : 

  >> iOS 9.0 이상
  >> 아이패드OS 9.0+
  >> 맥 카탈리스트 14.0+
  >> 비전OS 1.0+
  >> 워치OS 7.0+


3. NEHotspotNetwork 를 사용하기 위한 조건 : 

    /*
    // -----------------------------------------
    1. 필요 import :
        
        import NetworkExtension
        import SystemConfiguration.CaptiveNetwork
    // -----------------------------------------
    2. 필요 권한 : 위치 권한 Location
        
        Privacy - Location Always Usage Description
        Privacy - Location Always and When In Use Usage Description
    // -----------------------------------------
    3. MARK: xcode 프로젝트 NEHotspotNetwork 사용 설정 방법 : [Access Wi-Fi Information]
        
        - 사전) 유료 결제를 진행한 개발자 계정이 필요 (or 개발자 초대)
        - Xcode 프로젝트 설정 >> Capabillity >> Access Wi-Fi Information 추가
        - 프로젝트 entitlements 에서 추가한 Access Wi-Fi Information 권한이 정상 표시 되는 것 확인
        - 프로젝트 설정 참고 사이트 : 
        https://blog.naver.com/kkh0977/223667701982
        https://blog.naver.com/kkh0977/223669259799
    // -----------------------------------------
    */


4. NEHotspotNetwork 네트워크 정보 관련 : 

  >> var ssid: String : Wi-Fi 네트워크의 SSID입니다.
  >> var bssid: String : Wi-Fi 네트워크의 BSSID입니다.
  >> var signalStrength: Double : 최근 Wi-Fi 네트워크의 신호 강도입니다.
  >> var isSecure: Bool : 네트워크가 안전한지 여부를 나타냅니다
  >> var didAutoJoin: Bool : 네트워크에 자동으로 가입되었는지 아니면 사용자가 명시적으로 가입했는지를 나타냅니다.
  >> var didJustJoin: Bool : 네트워크에 새로 가입했는지 여부를 나타냅니다.
  >> var isChosenHelper: Bool : 호출하는 Hotspot Helper가 이 네트워크에 대해 선택된 도우미인지 여부를 나타냅니다.
  >> var securityType: NEHotspotNetworkSecurityType : Wi-Fi 네트워크에서 사용하는 보안 유형입니다.
  >> enum NEHotspotNetworkSecurityType : Wi-Fi 핫스팟 네트워크 보안 유형을 정의하는 상수의 열거형입니다.


5. NEHotspotNetwork 네트워크 정보 확인 관련 : 

  >> class func fetchCurrent(completionHandler: (NEHotspotNetwork?) -> Void) : 현재 Wi-Fi 네트워크에 대한 정보를 가져옵니다.


6. NEHotspotNetwork 사용 예시 : 

    if #available(iOS 14.0, *) {
        NEHotspotNetwork.fetchCurrent { network in
            if let network = network {
                
                // ------------------------------------------
                // network.ssid.description
                // network.bssid.description
                // ------------------------------------------
                M_LOG = "[Success] : NEHotspotNetwork.fetchCurrent Network Search"
                returnData = "\(network.ssid.description)"

                S_Log._W_(description: "현재 연결 된 와이파이 SSID 정보 확인 성공 :: Ios Version Up iOS 14", data: [ "M_LOG :: \(M_LOG)", "RETURN :: \(returnData)" ])

                // [콜백 반환]
                completion(returnData)
                return

            } else {
                M_LOG = "[Error] : NEHotspotNetwork.fetchCurrent Network Is Nil"

                S_Log._E_(description: "현재 연결 된 와이파이 SSID 정보 확인 실패 :: Ios Version Up iOS 14", data: [ "M_LOG :: \(M_LOG)" ])

                // [콜백 반환]
                completion(returnData)
                return
            }
        }
    }

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

https://developer.apple.com/documentation/networkextension/nehotspotnetwork

// --------------------------------------------------------------------------------------

 

반응형
Comments