问题描述
我创建了一个用于 BLE 连接和通信的 Flutter 演示应用程序。
我正在尝试从特征值中收听数据。但是执行 await characteristic.setNotifyValue(true);
会导致错误。
下面的代码是从发现服务到读取特征的整个操作。
discoverServices() async {
List<BluetoothService> services = await discoveredDevice.discoverServices();
services.forEach((service) {
service.characteristics.forEach((characteristic) async {
// Read characteristic
var value = await characteristic.read();
debugPrint("Read value: $value");
// Read descriptor
var descriptors = characteristic.descriptors;
for(BluetoothDescriptor d in descriptors) {
List<int> descriptorValue = await d.read();
debugPrint("Descriptor value: $descriptorValue");
}
await characteristic.setNotifyValue(true);
debugPrint('Is characteristic notifying: ${characteristic.isnotifying}');
characteristic.value.listen((characteristicValue) {
debugPrint('Characteristic value: $characteristicValue');
setState(() {
listStream = characteristic.value;
});
});
});
});
我遇到了这个错误:
E/Flutter (28172): [ERROR:Flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: PlatformException(set_notification_error,Could not locate CCCD descriptor for characteristic: 00002a00-0000-1000-8000-00805f9b34fb,null,null)
来自我的 BLE 设备的所有特征 uuid 都有上述错误。
非常感谢您的回答,谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)