android - 颤动的蓝色 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 应用程序配合使用。
解决方案
我通过将 MTU 大小更改为颤动的蓝色来解决它。
final mtu = await device.mtu.first;
await device.requestMtu(512);
推荐阅读
- angular - 关闭模态后取消选中材料复选框
- javascript - 如何使用 lodash 从子项中查找父名并打印路径
- angular - 如何在角度 8 的 mat-tab 中选择上一个选定的选项卡
- javascript - TwilioQuest - Ducktypium Classess JavaScript
- c - 如何在 C 中使用特定(不规则)步骤进行循环?
- java - 斐波那契数列有一个负数
- java - 使用 JAXB 解析 xml 文件
- mysql - 借助 docker 容器中的 Bash 脚本执行命令
- netsuite - 从 Eclipse IDE 编辑器中的 NetSuite 上传文件
- python - PDB - 如何挂起所有线程