我们可以引用import CoreTelephony框架下的一些API来判断当前的网络
iOS系统API定义:
/*
- Radio Access Technology values
*/
@available(iOS 7.0, *)
public let CTRadioAccessTechnologyGPRS: String
@available(iOS 7.0, *)
public let CTRadioAccessTechnologyEdge: String
@available(iOS 7.0, *)
public let CTRadioAccessTechnologyWCDMA: String
@available(iOS 7.0, *)
public let CTRadioAccessTechnologyHSDPA: String
@available(iOS 7.0, *)
public let CTRadioAccessTechnologyHSUPA: String
@available(iOS 7.0, *)
public let CTRadioAccessTechnologyCDMA1x: String
@available(iOS 7.0, *)
public let CTRadioAccessTechnologyCDMAEVDORev0: String
@available(iOS 7.0, *)
public let CTRadioAccessTechnologyCDMAEVDORevA: String
@available(iOS 7.0, *)
public let CTRadioAccessTechnologyCDMAEVDORevB: String
@available(iOS 7.0, *)
public let CTRadioAccessTechnologyeHRPD: String
@available(iOS 7.0, *)
public let CTRadioAccessTechnologyLTE: String
@available(iOS 14.1, *)
public let CTRadioAccessTechnologyNRNSA: String
@available(iOS 14.1, *)
public let CTRadioAccessTechnologyNR: String
网络判断:
func networkStatus() {
let arr2g = [CTRadioAccessTechnologyEdge,CTRadioAccessTechnologyGPRS,CTRadioAccessTechnologyCDMA1x]
let arr3g = [CTRadioAccessTechnologyHSDPA,CTRadioAccessTechnologyWCDMA,CTRadioAccessTechnologyHSUPA,CTRadioAccessTechnologyCDMAEVDORev0,CTRadioAccessTechnologyCDMAEVDORevA,CTRadioAccessTechnologyCDMAEVDORevB,CTRadioAccessTechnologyeHRPD]
let arr4g = [CTRadioAccessTechnologyLTE]
let teleInfo = CTTelephonyNetworkInfo()
guard let netStr = teleInfo.currentRadioAccessTechnology else {
return
}
if arr4g.contains(netStr) {
print("4G网络")
}else if arr3g.contains(netStr) {
print("3G网络")
}else if arr2g.contains(netStr) {
print("2G网络")
}else {
print("未知网络")
}
}