我实际上正在做一个swift3项目,它需要知道设备上的蓝牙是否处于激活状态。我阅读了很多关于这个主题的主题,但除了使用centralManagerDidUpdateState之外,没有一个能帮助我做到这一点的
实际上我有这样的代码:
private func GetBluetoothInformation() {
let options = [CBCentralManagerOptionShowPowerAlertKey:0]
bluetoothPeripheralManager = CBPeripheralManager(delegate: self, queue: nil, options: options)
}
func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager) {
var status: Bool = false
switch peripheral.state {
case .poweredOn:
status = true
default:
status = false
}
m_session_chofer?.setIsBluetooth(status)
}但是通过这样做,我不知道每次调用GetBluetoothInformation是否都会正确地更新状态。
谢谢你的帮助,
发布于 2017-02-08 13:52:40
var btManager = CBPeripheralManager(delegate: self, queue: nil, options: nil)
func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager!) {
println(__FUNCTION__)
if peripheral.state == CBPeripheralManagerState.PoweredOn {
println("Broadcast")
btManager!.startAdvertising(_broadcastBeaconDict)
} else if peripheral.state == CBPeripheralManagerState.PoweredOff {
println("Stop")
btManager!.stopAdvertising()
} else if peripheral.state == CBPeripheralManagerState.Unsupported {
println("Unsupport")
} else if peripheral.state == CBPeripheralManagerState.Unauthorized {
println("Not allow")
}
}https://stackoverflow.com/questions/42102574
复制相似问题