2***@qq.com
2***@qq.com
  • 发布:2025-04-11 12:49
  • 更新:2025-04-14 19:20
  • 阅读:73

安卓app开发中,接收蓝牙数据在700个字节左右,发生数据溢出,表现为重复接收多个数据错乱的数据包

分类:uni-app

产品分类: 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的蓝牙数据处理机制上可能存在问题。

多个不同型号的安卓手机和平板均出现同一现象

2025-04-11 12:49 负责人:无 分享
已邀请:
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

如果默认提供的 api 不满足需求,可以在插件市场搜索看是否有相关插件。也可以参考 uts 插件开发开发对应的 api,参考文档 https://doc.dcloud.net.cn/uni-app-x/plugin/uts-for-android.html

要回复问题请先登录注册