2016-03-24 27 views

cevap

2

Bence en kolay yolu ithalat CoreTelephony ve CTRadioAccessTechnologyDidChangeNotification gözlemlemek ve daha sonra geçiş olduğunu böyle: ayrıca standart ulaşılabilirlik kullanırken bu bildirim için dinlerseniz

let networkInfo = CTTelephonyNetworkInfo() 
let radio = networkInfo.currentRadioAccessTechnology 

guard let currentRadio = radio else { 
    print("No radio info available") 
    return 
} 

switch currentRadio { 
    case CTRadioAccessTechnologyLTE, 
     CTRadioAccessTechnologyHSDPA: //3.5G "T-Mobile 4G" 
     print("This is 4G/LTE") 
    case CTRadioAccessTechnologyeHRPD, //3.5G "Verizon 3G" 
     CTRadioAccessTechnologyHSUPA, 
     CTRadioAccessTechnologyWCDMA, 
     CTRadioAccessTechnologyCDMAEVDORev0, 
     CTRadioAccessTechnologyCDMAEVDORevA, 
     CTRadioAccessTechnologyCDMAEVDORevB: 
     print("This is 3G") 
    case CTRadioAccessTechnologyGPRS, 
     CTRadioAccessTechnologyCDMA1x 
     CTRadioAccessTechnologyEdge: 
     print("This is 2G") 
    default: 
     print("Unknown cellular network type") 
    } 

, bu anahtarı kullanabilirsiniz hücre ağ tipi almak için. WiFi bağlantısını bağımsız olarak kontrol etmek için currentReachabilityStatus'a ihtiyacınız olacak. Bildiğim kadarıyla, Swift'de Apple'ın Reachability sınıfını kullanmak için bir köprüleme başlığı ayarlamanız gerekir, ancak Github'da da Swift uygulamaları mevcuttur.

+0

Teşekkürler, aradığım şey cevabınızı @Arun'un cevabı ile birleştirmek ve şu ankiReachabilityStatus'u gözlemlemek. – Roee84

2

Evet Erişilebilirlik size bağlı ağ tipi sağlar. 3 farklı durum sunar - İnternete Bağlı Değil, Wifi'ya Bağlı, Mobil Verilere Bağlı.

NetworkStatus status = [reachability currentReachabilityStatus]; 

if(status == NotReachable) 
{ 
    //No Connectivity to Internet 
} 
else if (status == ReachableViaWiFi) 
{ 
    //Connected via WiFi 
} 
else if (status == ReachableViaWWAN) 
{ 
    //Connected via Mobile Data 
} 
+0

Teşekkürler! Ben de mümkün olsaydı doğru olarak kontrol ederdim. – Roee84

İlgili konular