微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在继续之前等待实际建立ble连接

如何解决如何在继续之前等待实际建立ble连接

我正在使用 Flutter 的 Flutter_reactive_ble 包,但在尝试在 for 循环中执行操作时遇到问题。

情况:

  • 我有一个设备 ID 列表
  • 我想遍历此列表并执行以下操作:连接、写入某些特征、断开连接

这是我的代码:(注意:这是在 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 列表,并尝试了以下操作:

  1. for 循环对 deviceidList 中的每个 deviceid 调用以下内容

    await Provider.of<BleDeviceConnector>(context,listen: 
    false).disconnect(deviceid);
    
  2. 实现了一个按钮,尝试一次与一台设备断开连接(每次单击一个按钮)

两次尝试都能够与列表中的第一个已连接设备断开连接,但无法成功与其他任何设备断开连接。

有什么想法吗?谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。