Notice
Recent Posts
Recent Comments
Link
투케이2K
568. (ios/swift5) NEHotspotConfigurationManager 사용해 특정 WIFI 와이파이 SSID 연결 리스트 확인 수행 본문
IOS
568. (ios/swift5) NEHotspotConfigurationManager 사용해 특정 WIFI 와이파이 SSID 연결 리스트 확인 수행
투케이2K 2024. 11. 22. 18:03[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT5
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Swift
- 개발 툴 : Xcode
- 사전 설명 :
>> NEHotspotConfigurationManager 는 iOS 11 이상에서 사용할 수 있으며, 사용자가 Wi-Fi 네트워크에 연결을 시도할 때 앱에서 요청을 처리할 수 있도록 도와줍니다
>> NEHotspotConfigurationManager 방법을 통해 Wi-Fi에 연결할 수 있지만, 사용자가 승인해야 하며 앱이 Wi-Fi 정보를 알지 못하도록 제한이 있습니다
- 사전 권한 설정 : 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
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
// MARK: - [SEARCH FAST] : observableGetWifiConnectionList : 특정 와이파이 SSID , PW 입력 다이렉트 연결 수행 리스트 목록 확인
// -----------------------------------------------------------------------------------------
static var configList : Array<String> = []
func observableGetWifiConnectionList(completion: @escaping (Array<String>)->()) {
/*
// -----------------------------------------
[observableSetWifiConnection 메소드 설명]
// -----------------------------------------
1. 특정 와이파이 SSID , PW 입력 다이렉트 연결 수행
// -----------------------------------------
2. 호출 방법 :
C_Wifi_Ap_Module().observableGetWifiConnectionList(){(result) in
S_Log._F_(description: "특정 와이파이 SSID , PW 연결 리스트 확인 수행", data: ["\(result)"])
}
// -----------------------------------------
3. 필요 import :
import NetworkExtension
import SystemConfiguration.CaptiveNetwork
// -----------------------------------------
4. 필요 권한 : 위치 권한 Location
Privacy - Location Always Usage Description
Privacy - Location Always and When In Use Usage Description
// -----------------------------------------
5. MARK: xcode 프로젝트 Capabillity 사용 설정 방법 : [Hotspot Configuration]
- 사전) 유료 결제를 진행한 개발자 계정이 필요 (or 개발자 초대)
- Xcode 프로젝트 설정 >> Capabillity >> Hotspot Configuration 추가
- 프로젝트 entitlements 에서 추가한 Hotspot Configuration 권한이 정상 표시 되는 것 확인
- 설정 및 적용 참고 사이트 :
https://blog.naver.com/kkh0977/223669166907
https://blog.naver.com/kkh0977/223669259799
// -----------------------------------------
*/
// [변수 선언]
var M_LOG = ""
C_Wifi_Ap_Module.configList = []
// [로직 처리 수행]
DispatchQueue.main.async {
S_Log._D_(description: "특정 와이파이 SSID , PW 연결 리스트 확인 수행", data: nil)
NEHotspotConfigurationManager.shared.getConfiguredSSIDs { (ssidsArray) in
if ssidsArray != nil && ssidsArray.count > 0 {
for ssid in ssidsArray {
C_Wifi_Ap_Module.configList.append(ssid) // [리스트에 추가]
}
M_LOG = "[Success] : Search Ssid List"
S_Log._D_(description: "특정 와이파이 SSID , PW 연결 리스트 확인 성공", data: [
"M_LOG :: \(M_LOG)",
"COUNT :: \(C_Wifi_Ap_Module.configList.count)",
"LIST :: \(C_Wifi_Ap_Module.configList)"
])
completion(C_Wifi_Ap_Module.configList) // [콜백 반환]
return
}
else {
M_LOG = "[Not Found] : Search Ssid List Is Null"
S_Log._D_(description: "특정 와이파이 SSID , PW 연결 리스트 확인 실패", data: [ "M_LOG :: \(M_LOG)" ])
completion(C_Wifi_Ap_Module.configList) // [콜백 반환]
return
}
}
}
}
// --------------------------------------------------------------------------------------
반응형
'IOS' 카테고리의 다른 글
Comments