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


