检测用户是否打开或关闭 Wifi 或蓝牙

Detecting if Wifi or Bluetooth is turned on or off by the user

我们如何确定是否使用 Swift 语言 on/off 开启了蓝牙或 Wifi?

我的应用程序使用蓝牙或 Wifi 与其他设备通信。我们对这些通信没有问题,但如果 Wifi and/or 蓝牙关闭(当用户正在使用应用程序时),我们想通知用户。我无法在 Swift 中执行此操作。

对于 iOS 中的蓝牙,您有 CBPeripheralManager(在 CoreBluetooth 框架中)。要检查蓝牙连接,您将 class 声明为 CBPeripheralManager 的委托,然后创建一个局部变量:

var myBTManager = CBPeripheralManager(delegate: self, queue: nil, options: nil)

然后,您的 class 必须实施回调,以便在启用或禁用蓝牙时得到通知。下面的代码是从我的 Beacon manager

项目中提取的
//BT Manager
    func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager!) {
        println(__FUNCTION__)
        if peripheral.state == CBPeripheralManagerState.PoweredOn {
            println("Broadcasting...")
            //start broadcasting
            myBTManager!.startAdvertising(_broadcastBeaconDict)
        } else if peripheral.state == CBPeripheralManagerState.PoweredOff {
            println("Stopped")
            myBTManager!.stopAdvertising()
        } else if peripheral.state == CBPeripheralManagerState.Unsupported {
            println("Unsupported")
        } else if peripheral.state == CBPeripheralManagerState.Unauthorized {
            println("This option is not allowed by your application")
        }
     }

对于 Wifi,看一下这个 Github:https://github.com/ashleymills/Reachability.swift