2016-03-24 12 views

答えて

2

私が考える最も簡単な方法は、インポートCoreTelephonyあるとCTRadioAccessTechnologyDidChangeNotificationを観察し、このようにすることを切り替える:また、標準的な到達可能性を使用しているときは、その通知をリッスン場合

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") 
    } 

、このスイッチを使用することができますセルネットワークタイプを取得します。 WiFi接続を個別に確認するには、currentReachabilityStatusが必要です。私が知っている限り、Swiftでは、AppleのReachabilityクラスを使用するためにブリッジヘッダーを設定する必要がありますが、githubでもSwiftの実装が利用できます。

+0

ありがとう、私が探していたのはあなたの答えを@Arunの答えと組み合わせて、currentReachabilityStatus – Roee84

2

はい到達可能性は、接続されたネットワークのタイプを提供します。インターネットに接続されていない、Wi-Fiに接続されている、モバイルデータに接続されている、3つのステータスがあります。

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

ありがとうございます!私はまたそれが可能であるかどうかを確かめるでしょう。 – Roee84

関連する問題