我试图设置通知,以便我的BLE与传感器可以发送数据到我的android手机。我的嵌入式代码是基于Adafruit (https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/custom-hrm )上的自定义人力资源管理示例的,而flutter的代码则是基于颤振蓝的示例
for (final BluetoothService service in services) {
if(service.uuid == widget.serviceID){
for (final BluetoothCharacteristic characteristic in service.characteristics) {
if(characteristic.uuid == widget.charID) {
await characteristic.setNotifyValue(true);
characteristic.value.listen((value) {
print(value);
});
}
}我一直在犯这个错误:
Unhandled Exception: PlatformException(set_notification_error, could not locate CCCD descriptor for characteristic: 00002a24-0000-1000-8000-00805f9b34fb, null, null)我测试了我的颤振代码的每一个可用的特征,以防止我的ID是错误的(但不是)。我还试着打印出所有关于这个特征的描述符,结果发现没有。
在示例adafruit代码中,我们不需要添加任何描述符,只需执行
characteristic.setProperties(CHR_PROPS_NOTIFY);
characteristic.setPermission(SECMODE_OPEN, SECMODE_NO_ACCESS);我是不是遗漏了什么?我怎么才能解决这个问题?
发布于 2022-07-20 14:46:48
解决了:这是一个硬件问题。服务和特性UUID没有正确设置。测试了一个新的羽毛nRF52,一切都很好。
https://stackoverflow.com/questions/73015412
复制相似问题