uni-app安卓app开发中接收蓝牙数据在700个字节左右发生数据溢出表现为重复接收多个数据错乱的数据包
uni-app安卓app开发中接收蓝牙数据在700个字节左右发生数据溢出表现为重复接收多个数据错乱的数据包
项目 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Mac |
PC开发环境操作系统版本号 | 15.3.2 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 4.57 |
手机系统 | Android |
手机系统版本号 | Android 14 |
手机厂商 | 摩托罗拉 |
手机机型 | X40 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
- 检测设备接can盒,can盒通过usb接电脑,电脑上有can盒工具软件。
- Hbuilderx中运行到手机,app启动后通过蓝牙连接检测设备,此时电脑上can盒工具软件发送足够长度的数据,Hbuilderx控制台中打印日志,看到数据溢出现象
预期结果:
- 控制台中打印的日志,应该接收到4-5个数据包后停止数据传输
实际结果:
- 实际一直在循环接收数据包
bug描述:
uniapp开发,打包到ios、安卓平台。功能场景是手机app通过蓝牙连接检测设备,获取车辆检测数据。
- 检测设备中的蓝牙芯片是Microchip RN4871-I/RM140。
- 实际测试中,车辆检测数据视情况大约在600-800字节,按蓝牙芯片的MTU158,大概按4-5个数据包传输。
- 在ios app中,没有问题,查看报文,4-5个数据包后接收工作即完成。
- 在安卓 app中,发现当数据量700(预估)以下时正常,当大于700,发生数据溢出。现象是报文中看到一直有数据包重复的在被接收到。
- 经过排查,检测设备端数据发送正常。又使用feasyblue蓝牙工具app进行模拟,该app在安卓端可以正常收到数据,因此判断是uniapp的蓝牙数据处理机制上可能存在问题。
- 多个不同型号的安卓手机和平板均出现同一现象
更多关于uni-app安卓app开发中接收蓝牙数据在700个字节左右发生数据溢出表现为重复接收多个数据错乱的数据包的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app安卓app开发中接收蓝牙数据在700个字节左右发生数据溢出表现为重复接收多个数据错乱的数据包的实战教程也可以访问 https://www.itying.com/category-93-b0.html
如果默认提供的 api 不满足需求,可以在插件市场搜索看是否有相关插件。也可以参考 uts 插件开发开发对应的 api,参考文档 https://doc.dcloud.net.cn/uni-app-x/plugin/uts-for-android.html