我们可以引用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("未知网络") } } |