qiushui163
qiushui163
  • 发布:2021-03-06 11:08
  • 更新:2021-03-09 17:35
  • 阅读:1831

蓝牙4.0接收数据 setbiemtu回调成功 仍然只能接收20字节数据

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 1909

HBuilderX类型: 正式

HBuilderX版本号: 3.1.2

手机系统: Android

手机系统版本号: Android 11

手机厂商: 三星

手机机型: S20

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

蓝牙芯片XC620(ble4.0),连接由设备发送20字节以上数据,真机调试只能接受20字节数据

预期结果:

setblemtu设置后 服务端26字节数据可全部接收

实际结果:

前20字节数据被接受 后6字节数据丢失 无法触发特征值监听

bug描述:

应用插件 微信小程序转UNIAPP
设备端(蓝牙4.0)发送26字节数据 uniapp运行至手机只能接受20字节 且特征值监听只能触发一次 已调用blesetmtu且success回调
测试蓝牙5.0 uniapp运行至手机 数据接收无误
更换软件NRFconnect (蓝牙4.0)不请求MTU 26字节log打印分两次接收 请求MTU后 可一次接收26字节

2021-03-06 11:08 负责人:无 分享
已邀请:
qiushui163

qiushui163 (作者)

微信小程序可以用 蓝牙5.0也ok 到4.0就出问题 换NRFCONNECT调试也可以 没人遇到这种情况嘛?

qiushui163

qiushui163 (作者)

真机运行


微信小程序log

蓝牙4.0是这种差异 所以有常识拼包 但是后六个字节无法触发特征值监听

qiushui163

qiushui163 (作者)

NRFCONNECT测试 MTU23

监听是两次
MTU507 一次接收全部

qiushui163

qiushui163 (作者)

都没有遇到这个问题嘛?实在不行就要搞Android了

  • 木杉丶

    题主,你那时有弄出来吗,同样的问题设置了也是只能最大26不知道为什么,如果不设置只能20

    2021-09-26 11:35

  • 1***@qq.com

    回复 木杉丶: 解决这个问题了吗?

    2022-02-12 21:14

  • 木杉丶

    回复 1***@qq.com: 官方给的就是不行的,直接去市场买了个原生插件用了,原生的可以 https://ext.dcloud.net.cn/plugin?id=4945

    2022-02-14 11:51

  • 木杉丶

    回复 1***@qq.com: 其实你要是用官方的也行,只是要分段发送,比如最大20就每次20字节20字节的发送,但是官方的这个东西又有个bug就是每次发送间隔太长了。要是字节数据多这分段发送就慢太多了,当然你要是不要求速率你可以直接用官方的也行,但是那个最大字节设置是没用的只能做分段发送。

    2022-02-14 11:55

该问题目前已经被锁定, 无法添加新回复