gpt4 book ai didi

swift - CBCentralManager 状态始终关闭

转载 作者:搜寻专家 更新时间:2023-10-31 22:36:02 26 4
gpt4 key购买 nike

当我运行代码并打开/关闭 MacbookPro 上的蓝牙时,状态始终为 4,对应于 PoweredOff 状态。

import Cocoa
import CoreBluetooth

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, CBCentralManagerDelegate {

var centralManager = CBCentralManager()

func applicationDidFinishLaunching(aNotification: NSNotification) {
centralManager = CBCentralManager(delegate: self, queue: nil)
}

func centralManagerDidUpdateState(central: CBCentralManager!) {

switch central.state {

case .PoweredOn:
println(".PoweredOn")

case .PoweredOff:
println(".PoweredOff")

case .Resetting:
println(".Resetting")

case .Unauthorized:
println(".Unauthorized")

case .Unknown:
println(".Unknown")

case .Unsupported:
println(".Unsupported")
}
}
}

我知道蓝牙实际上已打开,因为我已经能够将它与我的手机配对。

最佳答案

回答我自己的问题...

事实证明,CoreBluetooth 仅适用于蓝牙 4.0:

The Core Bluetooth framework is an abstraction of the Bluetooth 4.0 specification (source)

要了解您的 mac 的蓝牙规范:

 > 关于 native > 更多信息... > 系统报告... > 硬件 > 蓝牙

寻找 LMP 版本

0x4 = Bluetooth Core Specification 2.1 + EDR
0x6 = Bluetooth Core Specification 4.0

我有 LMP 版本 4,所以我猜 CoreBluetooth 对我不起作用。

有趣的是,switch 语句并没有给我 .Unsupported 情况。


编辑:
在带有蓝牙 4 的较新 Mac 上测试完全相同的代码后,状态变为 .PoweredOn

关于swift - CBCentralManager 状态始终关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26764147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com