Flutter项目通过Ble与硬件通信,在使用read时报错,报错信息如下:
项目中使用了await异步的方式调用了read函数,最后经过调试发现是服务端read/notify的特性为同一个,在read的同时还有个一个notify的操作,因此去掉notify即可,
E/flutter ( 5510): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Exception: BLE reading characteristic failed: PlatformException(read_characteristic_error, unknown reason, may occur if readCharacteristic was called before last read finished., null, null)
E/flutter ( 5510): #0 BLE.readCharacteristic (package:hades/model/bt/ble.dart:328:7)
E/flutter ( 5510): <asynchronous suspension>
E/flutter ( 5510): #1 NewKaleidos._readManufacturer (package:hades/model/devices/new_kaleidos/new_kaleidos.dart:370:21)
E/flutter ( 5510): <asynchronous suspension>
E/flutter ( 5510): #2 NewKaleidos.readDeviceInfo (package:hades/model/devices/new_kaleidos/new_kaleidos.dart:356:32)
E/flutter ( 5510): <asynchronous suspension>
E/flutter ( 5510):
``