收藏
回答

小程序IOS可以一次性读取一个512字节的特征值吗?

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




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


- 预期表现


- 复现路径


- 提供一个最简复现 Demo


onLoad: function (options) {

var _that = this

var deviceId = options.id


wx.getBLEDeviceServices({

    deviceId: deviceId,

    success(res) {

        console.log(res)

        //setTimeout(function(){

        wx.getBLEDeviceCharacteristics({

            // 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接

            deviceId: deviceId,

            // 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取

            serviceId:res.services[2].uuid,

            success(res55) {

                console.log('device getBLEDeviceCharacteristics:', res55)

                

wx.onBLECharacteristicValueChange(function (characteristic) {

console.log(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, dv1[0])

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

arr[z].push(dv1[0] * 128 + z)

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

}

console.log(arr)

})

wx.readBLECharacteristicValue({

deviceId: deviceId,

serviceId: res6.services[0].uuid,

characteristicId: '0000FF50-0000-1000-8000-00805F9B34FB',//此特征值的value是512字节长的16进制

success(res8) {

console.log(res8)

}

})

            },

            fail(res44){

                console.log(res44)

            },

            complete(res22){

                console.log(res.services[2].uuid)

                console.log(res22)

            }

        })

    }

})

},

小程序IOS能否直接读取一个长度为512字节的特征值(IOS不行,Android可以

回答关注问题邀请回答
收藏

1 个回答

  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-06-18

    你好,iOS的 MTU 是 20 字节

    2019-06-18
    有用
    回复 1
    • 高翔
      高翔
      2019-06-18

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






      ,但是124字节就不行了。这跟你说的IOS的MTU只有20字节没有关系啊,蓝牙设备特征值规定的最大长度是512字节,那么你们那边既然不是IOS的20字节,那么做到512字节长度也 是没问题的啊。这个怎么处理???

      2019-06-18
      回复
登录 后发表内容