美文网首页
Swift 2G/3G/4G网络判断

Swift 2G/3G/4G网络判断

作者: 萤火驻守心间 | 来源:发表于2022-07-01 18:06 被阅读0次

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

    相关文章

      网友评论

          本文标题:Swift 2G/3G/4G网络判断

          本文链接:https://www.haomeiwen.com/subject/dswcbrtx.html