didDiscoverCharacteristicsFor没有返回HM-10 BLE的任何特征

时间:2016-11-26 16:49:37

标签: swift bluetooth-lowenergy core-bluetooth

我成功地使用didDiscoverServices发现了服务,我从这里调用以下函数来发现特征:

peripheral.discoverCharacteristics(nil, for: service as CBService)

func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?) {

    if error != nil {
        print("[ERROR] Error discovering characteristics. \(error!.localizedDescription)")
        return
    }

    print("Found \(service.characteristics!.count) characteristics!: \(service.characteristics)")        
}

打印:"找到0个特征!:可选([])"

我没有从BLE设备获得任何特性。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

通常在连接后,下一步是发现服务。现在每项服务都有自己的特色。在你上面的电话

peripheral.discoverCharacteristics(nil, for: service as CBService)

service as CBService可能有也可能没有任何特征。我建议你做一件事,检查你的BLE设备有的所有服务,然后发现所有服务的特征。

func peripheral(peripheral: CBPeripheral, didDiscoverServices error: NSError?) {
    guard let serviceError = error else {
        if let peripheralServices = peripheral.services {
            for service in peripheralServices {
                peripheral.discoverCharacteristics(nil, forService: service)
            }
        }
        return
    }

    print("Error in discovering Services. Error : \(serviceError.localizedDescription)")
}

愿它能帮到你。快乐的编码:)