var that = this;

var hex = ‘01313233343536’

var typedArray = new Uint8Array(hex.match(/[/da-f]{2}/gi).map(function (h) {

return parseInt(h, 16)

}))

console.log(typedArray)

console.log([0xAA, 0x55, 0x04, 0xB1, 0x00, 0x00, 0xB5])

var buffer1 = typedArray.buffer

console.log(wx.canIUse(‘writeBLECharacteristicValue’))

wx.writeBLECharacteristicValue({

// 这里的 deviceId 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取  

deviceId: that.data.connectedDeviceId,

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

// serviceId: that.data.writeServicweId,

serviceId: ‘00008000-0101-0001-4A6F-796D65746572’,

// 这里的 characteristicId 需要在上面的 getBLEDeviceCharacteristics 接口中获取  

// characteristicId: that.data.writeCharacteristicsId,

characteristicId: ‘00008004-0101-0001-4A6F-796D65746572’,

// 这里的value是ArrayBuffer类型  

value: buffer1,

success: function (res) {

wx.showLoading({

title: ‘入网中’,

})

网友回复:

王***:

你好,失败的表现是什么,有错误信息或者错误码么?

王***:

fail write ValueToCharacteristics error 10004

王***:

10004 no service 没有找到指定服务

麻烦在 write ValueToCharacteristics 前保证依次调用 wx.getBLEDeviceServices 与 wx.getBLEDeviceCharacteristics ,并在write时传入之前get获取到的 serviceId 与 characteristicId。

王***:

serviceId , 和 characteristicId我是直接写死的 。

王***:

对的,iOS需要执行 wx.getBLEDeviceServices 与 wx.getBLEDeviceCharacteristics 来获取到蓝牙设备 服务 与 特征值 的实例,才能做后面的数据读写,没办法直接hardcode serviceId与characteristicId 就能执行读写操作的。

王***:

谢谢,不问真找不到问题在哪里。可以了,谢谢

王***:

感谢反馈,是我们开发文档写的不够友好,近期会再完善一版出来。

爱盈利(aiyingli.com)移动互联网具影响力的盈利指导网站。定位于服务移动互联网创业者,移动盈利指导。我们的目标是让盈利目标清晰可见!降低门槛,让缺乏经验、资金有限的个人和团队获得经验和机会,提高热情,激发产品。