我需要从设备上发送一个文件.txt到我的应用程序(最坏的情况下差不多2mb)。BLE设备将文件分成多个包。我不知道我的方法是否正确,但我创建了charactertic.write/charactertic.read循环,每次都会告诉设备要发送什么包。下面是我的代码:
for(int i = 0; i < packNumber.length; i++) {
initialValue = '9,50,100,$i,0,$checksumId,0/';
await characteristic
.write(utf8.encode(initialValue)).then((wValue) async {
await Future.delayed(Duration(milliseconds: 100)).then((value) async {
await characteristic.read().then((rValue) {
//do something with rVlaue
});
});
});
}它是有效的,但它是最好的解决方案吗?在这种情况下,我如何加快传输速度(目前,我必须在读取之前设置延迟,等待characteristic.write完成)?
谢谢你们
发布于 2020-12-31 22:33:57
您应该将远程设备更改为发送通知,而不是使用读取。这提供了最大的吞吐量。
https://stackoverflow.com/questions/65520049
复制相似问题