收藏
回答

小程序IOS可以单个特征值最大长度是多少?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug wx.readBLECharacteristicValue 客户端 7.0.3 2.6.6(2019.4.1814:51:03)

- 当前 Bug 的表现(可附上截图)


- 预期表现


- 复现路径


- 提供一个最简复现 Demo

wx.readBLECharacteristicValue({

deviceId: deviceId,

serviceId: '10FF0200-BA5E-F4EE-5CA1-EB1E5E4B1CE0',

characteristicId: '0000FF50-0000-1000-8000-00805F9B34FB',

success(res3) {


}

})

wx.onBLECharacteristicValueChange((characteristic) => {

var dv = new Int16Array(characteristic.value)

for (let j = 0; j < dv.length; j++) {

arr[j] = (dv[j] / 10).toFixed(1)

}

arr = common.resetArray(arr, _this.data.index)

for (var z = 0; z < arr.length; z++) {

_this.data.upPage[1].push(arr[z])

}

})


但是。。。看下面:

安卓512可以读取,IOS字节长度40、120、121、122、123字节长度都可以正常读取







当单个特征值字节长度超过123时,安卓可以正常读取、IOS就读取不到了。这跟你说的IOS的MTU只有20字节没有关系啊,蓝牙设备特征值规定的最大长度是512字节,那么你们那边既然不是IOS的20字节,那么做到512字节长度也 是没问题的啊。这个怎么处理??? 请官方给个处理方案!!!

最后一次编辑于  2019-06-21
回答关注问题邀请回答
收藏

3 个回答

  • 王翊夫if
    王翊夫if
    2019-06-21

    Hi,小程序蓝牙接口设计原则是直接暴露系统蓝牙接口的。

    1. 20 字节 MTU 为 writeData 的限制。

    2. 通讯 MTU 是蓝牙设备与手机系统一同约定的,以当前设备表现为准。

    3. 小程序层没有做任何逻辑封装,无法给出通用的处理方案。

    2019-06-21
    有用 1
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-06-21

    这个问题持续跟进中,请勿重复发帖,在原有答复的帖子继续跟进

    2019-06-21
    有用
    回复 2
    • 高翔
      高翔
      2019-06-21

      但是我几天了没收到消息啊

      2019-06-21
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2019-06-21回复高翔

      看上面

      2019-06-21
      回复
  • 小林
    小林
    2019-06-21

    iPhone6 7以下 是158字节,iPhone 8 以上是186好像是。iOS原生开发亲测的。

    2019-06-21
    有用
    回复 4
    • 高翔
      高翔
      2019-06-21

      这个是苹果的问题,小程序官方解决不了?

      另外我读取特征值的时候,安卓比苹果慢7倍。。。

      2019-06-21
      回复
    • 小林
      小林
      2019-06-21回复高翔

      对,不过iPhone8以上的机型好像可以扩大一些,不过每个包的发送间隔要大一些,不然会丢数。

      2019-06-21
      回复
    • Wm
      Wm
      2019-08-19
      超过20字节得做分包处理 ,然后蓝牙硬件相应的拆包处理,双方约定规则
      2019-08-19
      回复
    • 蘇
      2019-09-13
      iphone x和iPhone 6我测试是182
      2019-09-13
      回复
登录 后发表内容