首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用CBPeripheralManager获取蓝牙开/关状态

不使用CBPeripheralManager获取蓝牙开/关状态
EN

Stack Overflow用户
提问于 2017-02-08 08:31:03
回答 1查看 328关注 0票数 1

我实际上正在做一个swift3项目,它需要知道设备上的蓝牙是否处于激活状态。我阅读了很多关于这个主题的主题,但除了使用centralManagerDidUpdateState之外,没有一个能帮助我做到这一点的

实际上我有这样的代码:

代码语言:javascript
复制
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是否都会正确地更新状态。

谢谢你的帮助,

EN

回答 1

Stack Overflow用户

发布于 2017-02-08 13:52:40

代码语言:javascript
复制
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")
    }
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42102574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档