[swift] CoreTelephony 프레임워크를 사용하여 이동 통신 네트워크 정보 확인 방법

iOS 앱에서 현재 이동 통신 네트워크 정보를 가져오려면 CoreTelephony 프레임워크를 사용할 수 있습니다. 이 프레임워크는 현재 연결된 셀룰러 서비스의 정보와 변경 사항을 모니터링할 수 있는 API를 제공합니다.

CoreTelephony 프레임워크 추가

먼저 프로젝트에 CoreTelephony 프레임워크를 추가해야 합니다. Xcode에서 프로젝트를 열고, General 탭의 Frameworks, Libraries, and Embedded Content에서 + 버튼을 클릭하여 CoreTelephony.framework를 추가합니다.

이동 통신 네트워크 정보 가져오기

import CoreTelephony

let networkInfo = CTTelephonyNetworkInfo()
if let carrier = networkInfo.subscriberCellularProvider {
    let carrierName = carrier.carrierName
    let countryCode = carrier.isoCountryCode
    let networkCode = carrier.mobileNetworkCode
    let country = carrier.mobileCountryCode
    print("Carrier: \(carrierName), Country Code: \(countryCode), Network Code: \(networkCode), Country: \(country)")
    // 내용을 적절히 처리
} else {
    print("이동 통신 네트워크 정보를 가져올 수 없습니다.")
}

위의 예제 코드에서 CTTelephonyNetworkInfo를 사용하여 현재 이동 통신 네트워크 정보를 가져오고, subscriberCellularProvider를 통해 이동 통신 사업자 및 국가 코드 등의 정보를 확인할 수 있습니다.

변경 사항 모니터링

이동 통신 네트워크에 대한 변경 사항을 모니터링하려면 CTTelephonyNetworkInfoserviceSubscriberCellularProvidersDidUpdateNotifier 속성을 사용할 수 있습니다. 이를 활용하여 네트워크 변경에 대한 처리를 수행할 수 있습니다.

let networkInfo = CTTelephonyNetworkInfo()
networkInfo.serviceSubscriberCellularProvidersDidUpdateNotifier = { carrier in
    // 네트워크 변경에 대한 처리
}

CoreTelephony 프레임워크를 사용하면 이동 통신 네트워크에 대한 정보를 쉽게 가져올 수 있고, 변경 사항을 모니터링할 수 있습니다.

이상으로 CoreTelephony 프레임워크를 사용하여 iOS 앱에서 이동 통신 네트워크 정보를 확인하는 방법에 대해 알아보았습니다.

참조: Apple Developer Documentation - Core Telephony Framework