flutter_blue set_notification_error,找不到特征的 CCCD 描述符

问题描述

我创建了一个用于 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 (将#修改为@)