当我运行我的代码,并打开/关闭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")
}
}
}
我知道蓝牙实际上是开启的,因为我已经能够将它与我的手机配对。
答案 0 :(得分:3)
回答我自己的问题......
事实证明CoreBluetooth
仅适用于蓝牙4.0:
核心蓝牙框架是蓝牙4.0规范(source)
的抽象
要找出你的mac有什么蓝牙规格:
> About This Mac > More Info... > System Report... > Hardware > Bluetooth
寻找LMP Version
0x4 = Bluetooth Core Specification 2.1 + EDR
0x6 = Bluetooth Core Specification 4.0
我有LMP版本4,所以我猜CoreBluetooth
对我不起作用。
有趣的是,switch语句并没有给我.Unsupported
的情况。
编辑:
在使用蓝牙4的较新Mac上测试完全相同的代码后,状态变为.PoweredOn
。