Detecting if Wifi or Bluetooth is turned on or off

2020-03-05 03:31发布

问题:


Want to improve this question? Add details and clarify the problem by editing this post.

Closed 5 years ago.

How can we determine if Bluetooth or Wifi was turned on/off using the Swift language?

My application uses Bluetooth or Wifi to communicate with other devices. We have no problem with these communications, but we would like to inform the user if Wifi and/or Bluetooth is turned off (when the user is using the application). I haven't been able to do this in Swift.

回答1:

For Bluetooth in iOS, you have CBPeripheralManager (in CoreBluetooth Framework). To check for bluetooth connection, you declare your class as delegate of CBPeripheralManager then create a local variable:

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

then, your class must implement the callback to get noticed when your Bluetooth is enabled or disabled. The code below is extracted from my project which is for 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")
        }
     }

And for Wifi, take a look at this Github: https://github.com/ashleymills/Reachability.swift