首页 > 解决方案 > 颤动的蓝色 setNotifyValue 只显示 21 个第一个字符?

问题描述

当我尝试使用颤动的蓝色库来启用通知时,我没有得到完整的字符串返回。

我使用的代码:

await characteristic.setNotifyValue(true);
characteristic.value.listen((value) {
    print(utf8.decode(value));
});

它还给我

{"PumpType":"Demopri

虽然我应该得到

{"PumpType":"Demopring","Power":1,"TempWater":28.5,"TempAmbient":22.0,"TempSet":29.0,"ErrorMessages":""}

它似乎切断了我的消息,但是当我使用串行监控应用程序或原生 Android 应用程序时,我得到了完整的字符串,所以外围设备没有问题。

我运行所有测试的设备是 Android 10 设备,它与原生 Android 应用程序配合使用。

标签: androidflutterbluetooth-lowenergy

解决方案


我通过将 MTU 大小更改为颤动的蓝色来解决它。

final mtu = await device.mtu.first;
await device.requestMtu(512);

推荐阅读