Notice
Recent Posts
Recent Comments
Link
투케이2K
591. (ios/swift5) [기능 보완] getWifiSsid : 현재 연결 된 와이파이 SSID 정보 확인 수행 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT5
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Swift
- 개발 툴 : Xcode
- 기술 구분 : 유틸 파일
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
func getWifiSsid(completion: @escaping (String)->()) {
/*
// -----------------------------------------
[getWifiSsid 메소드 설명]
// -----------------------------------------
1. 현재 연결 된 와이파이 SSID 정보 확인 수행
// -----------------------------------------
2. 호출 방법 :
C_Wifi_Ap_Module().getWifiSsid(){(result) in
S_Log._F_(description: "현재 연결 된 와이파이 SSID 정보 확인 수행", 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 프로젝트 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
// -----------------------------------------
*/
// [리턴 변수 선언]
var returnData = ""
var M_LOG = ""
// [로직 처리 수행]
DispatchQueue.main.async {
if C_StateCheck().isWifiConnected() == true { // [와이파이 연결 된 상태]
// [IOS 버전 분기 처리 수행]
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
}
}
}
else {
var ssid = ""
var bssid = ""
if let interfaces = CNCopySupportedInterfaces() as NSArray? {
for interface in interfaces {
if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {
ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String ?? ""
bssid = interfaceInfo[kCNNetworkInfoKeyBSSID as String] as? String ?? ""
}
}
}
if C_Util().stringNotNull(str: ssid) == true {
M_LOG = "[Success] : CNCopySupportedInterfaces Network Search"
returnData = "\(ssid)"
S_Log._W_(description: "현재 연결 된 와이파이 SSID 정보 확인 성공 :: Ios Version Under iOS 14", data: [ "M_LOG :: \(M_LOG)", "RETURN :: \(returnData)" ])
// [콜백 반환]
completion(returnData)
return
}
else {
M_LOG = "[Error] : CNCopySupportedInterfaces Network Ssid Is Nil"
S_Log._E_(description: "현재 연결 된 와이파이 SSID 정보 확인 실패 :: Ios Version Under iOS 14", data: [ "M_LOG :: \(M_LOG)" ])
// [콜백 반환]
completion(returnData)
return
}
}
}
else { // [와이파이 연결 안된 상태]
M_LOG = "[Error] : Wifi Connect False"
S_Log._E_(description: "현재 연결 된 와이파이 SSID 정보 확인 실패", data: [ "M_LOG :: \(M_LOG)" ])
// [콜백 반환]
completion(returnData)
return
}
}
}
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[Xcode 프로젝트에서 유료 결제 개발자 계정 사용 Capabillity Access Wi-Fi Information 사용 설정 - 와이파이 정보]
https://blog.naver.com/kkh0977/223667701982
[Xcode 프로젝트에서 유료 결제 개발자 계정 사용 Capabillity Hotspot Configuration 사용 설정 - 와이파이 연결]
https://blog.naver.com/kkh0977/223669166907
[Xcode 프로젝트에서 Capabillity 개발 권한 추가 entitlements 속성 key , value 값 확인 방법]
https://blog.naver.com/kkh0977/223669259799
// --------------------------------------------------------------------------------------
반응형
'IOS' 카테고리의 다른 글
Comments