我成功地使用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设备获得任何特性。任何帮助表示赞赏。
答案 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)")
}
愿它能帮到你。快乐的编码:)