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

Hop*_*ope 3 bluetooth wifi swift

我们如何确定使用Swift语言打开/关闭了蓝牙或Wifi?

我的应用程序使用蓝牙或Wifi与其他设备进行通信。这些通讯没有问题,但是我们想通知用户Wifi和/或蓝牙是否关闭(当用户使用该应用程序时)。我无法在Swift中做到这一点。

Duy*_*Hoa 5

对于iOS中的蓝牙,您具有CBPeripheralManager(在CoreBluetooth Framework中)。要检查蓝牙连接,请声明您的类为CBPeripheralManager的委托,然后创建一个本地变量:

var myBTManager = CBPeripheralManager(delegate: self, queue: nil, options: nil)
Run Code Online (Sandbox Code Playgroud)

然后,您的类必须实现回调以在启用或禁用蓝牙时引起注意。下面的代码是从我的项目中提取的,该项目适用于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")
        }
     }
Run Code Online (Sandbox Code Playgroud)

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