2016-10-04 4 views
4

無線LANがオフになっているかどうかを確認して、ユーザーに接続状況を確認する警告を表示します。iOS Swift 2でWi-Fiがオンまたはオフになっているかどうかを確認するにはどうすればよいですか?

私はこのようなコードを見つけることが、インターネット接続がある場合、無線LANがオンまたはオフであれば、それはチェックしていない、チェック:

func isConnectionAvailble()->Bool{ 

    var rechability = SCNetworkReachabilityCreateWithName(kCFAllocatorDefault, "www.apple.com").takeRetainedValue() 

    var flags : SCNetworkReachabilityFlags = 0 

    if SCNetworkReachabilityGetFlags(rechability, &flags) == 0 
    { 
    return false 
    } 

    let isReachable = (flags & UInt32(kSCNetworkFlagsReachable)) != 0 
    let needsConnection = (flags & UInt32(kSCNetworkFlagsConnectionRequired)) != 0 
    return (isReachable && !needsConnection) 
} 
+0

チェックは、これが答えhttp://stackoverflow.com/questions/30743408/check-for-internet-connection:

まずあなたはこのフレームワークをインポート-in-swift-2-ios-9 –

+0

私は私の質問で言ったようにインターネット接続を確認するこの答えを知っている –

+0

その後、このwikiの状態のトリックをチェックし、トリックhttp://www.enigmaticapeで与えられたあなたの返信を比較してください。 com/blog/determine-wifi-enabled-ios-one-weird-trick –

答えて

2

あなたがすることはできません。

到達可能性では、次の3つの点を区別できます。 WiFi接続があり、モバイルデータ接続がある場合とない場合があります。 b。モバイルデータ接続はありますが、WiFi接続はありません。 c。 Wi-Fiもモバイルデータ接続もありません。

WiFiがオフになっているか、WiFiがオフになっていても近くにWiFiネットワークがないか、または飛行機モードがオンになっているかどうかを確認することはできません。

モバイルデータの場合、テレフォニークラスを使用して、デバイスがモバイルデータ接続(iPhoneとiPadは接続されていない)とSIMカードが接続されているかどうかを調べることができます。あなたのアプリケーションの。

1

あなたが到達可能性のためのAppleの公式サンプルを見てみることができます。 https://developer.apple.com/library/content/samplecode/Reachability/Introduction/Intro.html

var netStatus = reachability.currentReachabilityStatus() 
var connectionRequired = reachability.connectionRequired() 
var statusString = "" 
switch netStatus { 
    case NotReachable: 
     break 
    case ReachableViaWWAN: 
     //DATA 
     break 
    case ReachableViaWiFi: 
     //WIFI 
     break 

}

+0

同じ問題。 Wi-Fiでインターネット接続があるかどうかをチェックします。 –

-1

かを確認するために、このメソッドを使用することができます。

import SystemConfiguration.CaptiveNetwork 


func isWifiEnabled() -> Bool { 

     var hasWiFiNetwork: Bool = false 
     let interfaces: NSArray = CFBridgingRetain(CNCopySupportedInterfaces()) as! NSArray 

     for interface in interfaces { 
      // let networkInfo = (CFBridgingRetain(CNCopyCurrentNetworkInfo(((interface) as! CFString))) as! NSDictionary) 
      let networkInfo: [AnyHashable: Any]? = CFBridgingRetain(CNCopyCurrentNetworkInfo(((interface) as! CFString))) as? [AnyHashable : Any] 
      if (networkInfo != nil) { 
       hasWiFiNetwork = true 
       break 
      } 
     } 
     return hasWiFiNetwork; 
    } 
関連する問題