代码之家  ›  专栏  ›  技术社区  ›  Max Kraev

无法通过Core蓝牙(MacOS Swift)发现蓝牙鼠标和键盘

  •  3
  • Max Kraev  · 技术社区  · 7 年前

    我对使用corebuttle框架的设备有问题。基本上,我需要在OSX中复制标准蓝牙发现应用程序的功能,所以我做了以下操作:

    let bluetoothManager = CBCentralManager()
    
    //Lifecycle
    
     override func viewDidLoad() {
        super.viewDidLoad()
        bluetoothManager.delegate = self
    }
    
    //delegate method
    
    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        switch central.state {
        case .poweredOn:
            print("powered on")
            central.scanForPeripherals(withServices: nil, options: nil)
        case .unknown:
            print("state unknown")
        case .resetting:
            print("resetting")
        case .unsupported:
            print("unsupported")
        case .unauthorized:
            print("unauthorized")
        case .poweredOff:
            print("powered off")
        }
    }
    

    现在我只是把外设打印到控制台上:

    func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
        print("discovered some perilherials", peripheral)    
    }
    

    我搜索了 bluetooth.com 规格,但没有运气

    任何建议都很好!

    1 回复  |  直到 7 年前
        1
  •  2
  •   Paulw11    7 年前

    核心蓝牙只能发现ble gatt配置文件设备。对于旧设备和配置文件(例如键盘公布的hid配置文件),您需要使用 IOBluetooth framework