1***@qq.com
1***@qq.com
  • 发布:2023-01-30 15:41
  • 更新:2023-01-30 15:41
  • 阅读:387

uniapp的低功耗蓝牙API,监听蓝牙消息方法有缓存?监听到的消息是蓝牙设备上一次发送的?

分类:uni-app

uniapp + 苹果系统 + 低功耗蓝牙API,IOS系统出现一个问题。

*uniapp的低功耗蓝牙API监听蓝牙信息有缓存似的,每一次监听到的信息是蓝牙设备上一次想uniapp发送的信息*****

连接上并给蓝牙设备发送wifi账号密码配网,配网成功后,蓝牙设备给uniapp发送消息,uniapp接收到的消息是蓝牙设备上一次发送的消息。

蓝牙设备端打印的日志是接收到wifi账号密码后6秒以后才给手机uniapp发送的信息,而uniapp在1秒内就接收到了信息,而此时蓝牙设备打印的日志显示并没有发送信息。而且即使蓝牙设备发送失败了,uniapp也能接收到消息,这是什么问题。

这个问题只在苹果手机上出现了。安卓手机没有问题。有人遇到同样的问题吗

目前 setTimeout 和 setInterval 延时监听蓝牙信息 的方法都试过了,只要设置了延时,之后就再也收不到信息了。

现在怀疑是设备在配网失败时启动的 自动重连使用的wifi密码配网 与 uniapp第二次发送wifi信息时的配网 两者同时运行的冲突导致的配网失败。
但IOS系统下会提前收到蓝牙设备发送的消息这个问题的原因还没找到,不知道是不是uniapp的低功耗蓝牙API在IOS下的bug。

改用递归去重复监听蓝牙信息,也是不行。
就感觉uniapp的低功耗蓝牙API监听蓝牙信息有缓存是的,每一次监听到的信息是蓝牙设备上一次想uniapp发送的信息

以下是两次配网的日志截图(正确的wifi密码是:12345678)
1、第一次输入错误的密码,蓝牙设备还没有向uniapp发送蓝牙信息,uniapp却已经监听到 配网成功 的信息,而蓝牙设备日志记录的是配网失败信息,发送的也是配网失败,设备也显示状态为未连接。

2、第二次输入正确的wifi密码,蓝牙设备还没有向uniapp发送蓝牙信息,uniapp却已经监听到 配网失败 的信息,设备也显示状态为已连接。

2023-01-30 15:41 负责人:无 分享
已邀请:

要回复问题请先登录注册