Last active
November 2, 2021 21:22
-
-
Save PraveenKommuri/7667e84eb0aad53933e1775c6b8a47eb to your computer and use it in GitHub Desktop.
Get the Cellular network connection type i.e. 2G, 3G & LTE etc.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Support iOS 14+ | |
func getNetworkConnectionType() -> String { | |
var connectionType: String = "Unknown" | |
let networkInfo = CTTelephonyNetworkInfo() | |
let carrierType = networkInfo.serviceCurrentRadioAccessTechnology | |
guard let carrierTypeName = carrierType?.first?.value else { | |
return connectionType | |
} | |
switch carrierTypeName { | |
case CTRadioAccessTechnologyGPRS, CTRadioAccessTechnologyEdge, CTRadioAccessTechnologyCDMAEVDORev0: | |
connectionType = "2G" | |
case CTRadioAccessTechnologyWCDMA, CTRadioAccessTechnologyHSDPA, CTRadioAccessTechnologyHSUPA, CTRadioAccessTechnologyCDMAEVDORevA, CTRadioAccessTechnologyCDMAEVDORevB, CTRadioAccessTechnologyeHRPD, CTRadioAccessTechnologyCDMA1x: | |
connectionType = "3G" | |
case CTRadioAccessTechnologyLTE: | |
connectionType = "LTE" | |
// We can enable these when we support from iOS 14+ | |
//case CTRadioAccessTechnologyNR, CTRadioAccessTechnologyNRNSA: | |
//connectionType = "5G" | |
default: | |
return connectionType | |
} | |
return connectionType | |
} | |
// Supports iOS 10+ | |
func getNetworkConnectionType() -> String { | |
var connectionType: String = "Unknown" | |
let networkInfo = CTTelephonyNetworkInfo() | |
let carrierType = networkInfo.currentRadioAccessTechnology | |
switch carrierType { | |
case CTRadioAccessTechnologyGPRS, CTRadioAccessTechnologyEdge, CTRadioAccessTechnologyCDMAEVDORev0: | |
connectionType = "2G" | |
case CTRadioAccessTechnologyWCDMA, CTRadioAccessTechnologyHSDPA, CTRadioAccessTechnologyHSUPA, CTRadioAccessTechnologyCDMAEVDORevA, CTRadioAccessTechnologyCDMAEVDORevB, CTRadioAccessTechnologyeHRPD, CTRadioAccessTechnologyCDMA1x: | |
connectionType = "3G" | |
case CTRadioAccessTechnologyLTE: | |
connectionType = "LTE" | |
default: | |
return connectionType | |
} | |
return connectionType | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment