问题描述
我正在使用 Flutter 的 Flutter_reactive_ble 包,但在尝试在 for 循环中执行操作时遇到问题。
情况:
这是我的代码:(注意:这是在 IconButton 的 onpressed 部分)
IconButton(
...
...
onpressed:
for (String deviceid in deviceidList) {
try {
await Provider.of<BleDeviceConnector>(context,listen: false)
.connect(deviceid)
.then((value) => loadStuff(context))
.then((value) =>
Provider.of<BleDeviceConnector>(context,listen: false)
.disconnect(deviceid));
} catch (e) {
print(e);
}
)
我遇到的问题是第一个“connect”函数被调用,但在继续循环之前它不会等待实际连接。
这导致整个循环在我的设备甚至连接之前完成。
仅供参考...第一台设备确实连接上了,但随后整个应用程序都冻结了,因为我认为它处于丢失状态。
感谢您的任何帮助/建议。
--- 更新---
我决定将其拆分并能够让循环连接并加载到多个设备。
但是,我仍然无法与所有已连接的设备断开连接。我有一个我连接到的设备 ID 列表,并尝试了以下操作:
-
for 循环对 deviceidList 中的每个 deviceid 调用以下内容:
await Provider.of<BleDeviceConnector>(context,listen: false).disconnect(deviceid);
两次尝试都能够与列表中的第一个已连接设备断开连接,但无法成功与其他任何设备断开连接。
有什么想法吗?谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)