一尘不染

如何检查iOS Swift 2中是否打开或关闭WiFi?

swift

我想检查wifi是否关闭,然后向用户显示警报以检查其连接。

我找到了这样的代码,但是它检查是否有互联网连接,而不是检查wifi是否打开:

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

阅读 469

收藏
2020-07-07

共1个答案

一尘不染

你不能

使用Apple的可达性类别,您可以根据NetworkStatus结构区分三件事:

typedef enum : NSInteger {
  NotReachable = 0,         // 1
  ReachableViaWiFi,         // 2
  ReachableViaWWAN          // 3
} NetworkStatus;
  1. 您既没有WiFi也没有移动数据连接。
  2. 您具有WiFi连接,但是您可能有也可能没有移动数据连接。
  3. 您具有移动数据连接,但没有WiFi连接。

无法 检查WiFi是否已关闭,WiFi是否已打开但附近没有WiFi网络或飞行模式是否已打开。

对于移动数据,可以使用电话类来查找您的设备是否能够进行移动数据连接(iPhone和iPad以及插入的SIM卡),并可以在应用程序首选项中检测是否禁用了移动数据。

2020-07-07