Skip to content

Instantly share code, notes, and snippets.

@PraveenKommuri
Last active November 2, 2021 21:22
Show Gist options
  • Save PraveenKommuri/7667e84eb0aad53933e1775c6b8a47eb to your computer and use it in GitHub Desktop.
Save PraveenKommuri/7667e84eb0aad53933e1775c6b8a47eb to your computer and use it in GitHub Desktop.
Get the Cellular network connection type i.e. 2G, 3G & LTE etc.
// 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