如果在iPhone的蓝牙设置中建立连接,如何收到通知?

时间:2017-06-06 08:41:57

标签: ios swift bluetooth-lowenergy core-bluetooth

我有一台试图通过我的应用程序连接到外围设备的iPhone,由于某种原因(不是问题),连接会在一分钟后掉线。我的应用程序不会尝试自动重新连接到此外围设备,但在iPhone设置中,我可以看到外围设备仍显示为已连接。 我从CoreBluetooth框架获得断开连接回调,但没有跟随didConnect回调,因为应用程序没有尝试再次连接。

当系统自动连接到此外围设备时,我的应用程序中有什么方法可以知道吗?或者我可以订阅任何系统通知,以便知道连接状态何时发生变化?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

CoreBluetooth框架为您提供了一种委托方法,可以了解蓝牙连接的状态。

import CoreBluetooth

class ViewController: CBPeripheralManagerDelegate {

var bluetoothPeripheralManager: CBPeripheralManager? 

override func viewDidLoad() {
    super.viewDidLoad()
    let options = [CBCentralManagerOptionShowPowerAlertKey:0] 
    bluetoothPeripheralManager = CBPeripheralManager(delegate: self, queue: nil, options: options)
}

func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager) {
    var statusMessage = ""

    switch peripheral.state {
    case CBPeripheralManagerState.PoweredOn:
        statusMessage = "Bluetooth Status: Turned On"

    case CBPeripheralManagerState.PoweredOff:
        statusMessage = "Bluetooth Status: Turned Off"

    case CBPeripheralManagerState.Resetting:
        statusMessage = "Bluetooth Status: Resetting"

    case CBPeripheralManagerState.Unauthorized:
        statusMessage = "Bluetooth Status: Not Authorized"

    case CBPeripheralManagerState.Unsupported:
        statusMessage = "Bluetooth Status: Not Supported"

    default:
        statusMessage = "Bluetooth Status: Unknown"
    }
    print(statusMessage)
  }
}

peripheralManagerDidUpdateState方法为您提供蓝牙状态。希望它有所帮助。获取状态信息并根据您的需要进行操作。