微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。