Ich versuche, auf MacOS (2017 iMac) auf Bluetooth-Peripheriegeräte zugreifen, aber die CBCentralManager
scheint nie in den .poweredOn
Zustand einzutreten. DiesemacOS CBCentralManager Zustand nicht unterstützt
import Cocoa
import CoreBluetooth
class BluetoothManager: NSObject {
var centralManager: CBCentralManager!
override init() {
super.init()
self.centralManager = CBCentralManager(delegate: self, queue:nil)
self.checkState()
}
func checkState() {
print("central state: \(self.centralManager?.state.rawValue ?? -1)")
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + .seconds(2), execute: {
self.checkState()
})
}
}
extension BluetoothManager: CBCentralManagerDelegate {
func centralManagerDidUpdateState(_ central: CBCentralManager) {
switch central.state {
case .poweredOn:
print("Power on")
case .unsupported:
print("Unsupported")
default:break
}
}
}
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
var bluetoothManager: BluetoothManager?
func applicationDidFinishLaunching(_ aNotification: Notification) {
self.bluetoothManager = BluetoothManager()
}
...
}
konsequent Ausgang Unsupported
, mit einer Konsole Warnung
[CoreBluetooth] XPC connection invalid
Ich bin mir der Info.plist
Schlüssel NSBluetoothPeripheralUsageDescription
, die ich versuchte, obwohl ich glaube, das ist nur für iOS-Geräte.
Sehe ich in die falsche Richtung für die Verwaltung von Bluetooth auf einem iMac? Oder fehlt bei meiner Implementierung etwas? Ich habe das Gefühl, dass ich alles abgedeckt habe, was in der Core Bluetooth documentation erforderlich ist.