- 真机调试中udp.send() API为什么会出现错误提示not supported?
编写了与板端通信的UDP程序,各项功能在模拟器中均调试完备,在真机中出现send: fail sendUDPSocketMessage:fail:not supported的错误提示,请问该如何处理? 补充:真机模拟中,其他页面的udp正常发送,某一页面无法正常工作,在真机调试2.0中出现operate sock fail can't find udp cilent的错误 API:udp.send(); 微信版本:安卓 8.0.21 基础库:2.23.4
2022-05-01 - 利用wx.onBLECharacteristicValueChange监听的值来做应答但是只能接收?
/*蓝牙升级通讯协议(小程序与单片机的应答) ------------------------------------------------------------------------------------------------------------------ * 五、开始下载后小程序自动重复发送每一组数据,直到收到单片机应答信息后,开始连续下载; * 六、单片机每收到一组数据,计算校验和,如果正确则应答接收正确,否则应答接收错误; * 七、接收正确应答:2B 4F 4B CF 75 * 八、接收错误应答:2D 45 52 52 00 A4 * 九、全部下载结束后停止 ------------------------------------------------------------------------------------------------------------------ [图片] 就是我这边只能监听变化的值,却不能通过获取硬件发送过来这个值进行发送,求大佬们怎么解决这是我的部分代码 wx.onBLECharacteristicValueChange(function (res) { console.log(`characteristic ${res.characteristicId} has changed, now is ${res.value}`, 99999999999999999999) console.log(ab2hex(res.value)) // ArrayBuffer转16进制字符串 console.log(res.value) that.setData({ valueChange: valueChangeData + "|" + ab2hex(res.value), //前端显示蓝牙接收数据 }) valueChangeData = valueChangeData + '|' + ab2hex(res.value); console.log("valueChangeData", valueChangeData) var a = []; a.push(valueChangeData) console.log(a, "A") var b = (a.toString()).split('|') console.log(b) valueChangeDataArray = b//定义的全局变量 // that.testSend1() // that.writePackageData1() var success = [43, 79, 75, 207, 117]; var successArrayBuffer = new Uint8Array(success).buffer; console.log(successArrayBuffer) var fail = [45, 45, 52, 52, 0, 164] var failArrayBuffer = new Uint8Array(fail).buffer; console.log(failArrayBuffer) if (ab2hex(res.value) == ab2hex(successArrayBuffer)) { console.log("接收正确应答") // that.testSend1() //that.package20Write() } else if (ab2hex(res.value) == ab2hex(failArrayBuffer)) { console.log("接收错误应答,重新回调") // that.testSend2() } }) }, testSend1() { this.writeRealData1(deviceIdConnected, serviceIdConnected, characteristicsIdConnected, sendFile) }, writeRealData1(deviceId, serviceId, characteristicId, packageData) { const arrays = packageData; console.log(arrays, "所有的1k") var valueChange = valueChangeDataArray; //监听的数组 var index; if (valueChange instanceof Array) { valueChange.splice(0, 1); if (valueChange.length % 57 == 0) { index = valueChange.length / 57 } else { index = parseInt(valueChange.length / 57) } } else if (valueChange == undefined) { index = 0 } console.log(valueChange) console.log(index, "长度") var success = "2b4f4bcf75" //监听成功的值 var fail = "2d4552520a4" //监听失败的值 const data = arrays[index] || null, self = this console.log("第", index, "包数据", data) self.writePackageData1(deviceId, serviceId, characteristicId, data) }, writePackageData1(deviceId, serviceId, characteristicId, Data) { /** hex2int(hex)字符串转16进制 */ /**concatenate(resultConstructor, ...arrays)合并arraybuffer */ /////////////////校检和 ////////////////////// function CRC(array) { var len = array.length, sum = 0; for (let i = 0; i < len; i++) { sum += array[i] } return sum.toString(16) } /////////////////////// //////////////////////// var valueChange = valueChangeDataArray; //监听的数组 console.log(valueChange) var valueChangeleng; if (valueChange instanceof Array) { valueChange.splice(0, 1); valueChangeleng = valueChange.length - parseInt(valueChange.length / 57) * 57 } else if (valueChange == undefined) { valueChangeleng = 0 } const array = Data; console.log(array, "array") var arr = [] for (let i = 0; i < array.byteLength; i += 18) { arr.push(array.slice(i, i + 18)) } var uintBuffer = new Uint8Array(arr[valueChangeleng]) console.log("uintBuffer", uintBuffer) var uintBuffers = concatenate(Uint8Array, Uint8Array.of(valueChangeleng), uintBuffer) console.log("uintBuffers", uintBuffers) var array1 = Array.from(uintBuffers) //console.log(CRC.ToCRC16(array1),"校检和") console.log(CRC(array1), "校检和") array1.push(hex2int(CRC(array1).slice(1, 3))) var arrayBuffer = new Uint8Array(array1).buffer; console.log("arrayBuffer", arrayBuffer) const data = arrayBuffer || null, self = this console.log("第", valueChangeleng, "次", "发送的数据为", data) var success = "2b4f4bcf75" //监听成功的值 var fail = "2d4552520a4" //监听失败的值 if (valueChangeleng == 0) { wx.writeBLECharacteristicValue({ deviceId, serviceId, characteristicId, value: data, success: function () { console.log("我是第一个数据包") } }) } else if (data && data instanceof ArrayBuffer && valueChange[valueChangeleng] == success) { wx.writeBLECharacteristicValue({ deviceId, serviceId, characteristicId, value: data, success: function () { console.log("success,成功") if (valueChangeleng < arr.length) { sleep(20) self.writePackageData1(deviceId, serviceId, characteristicId, Data) } } }) } else if (data && data instanceof ArrayBuffer && valueChange[valueChangeleng] == fail) { wx.writeBLECharacteristicValue({ deviceId, serviceId, characteristicId, value: data, success: function () { console.log("fail,失败") self.writePackageData1(deviceId, serviceId, characteristicId, Data, valueChangeleng - 1) } }) } },
2021-01-19 - wx.setBLEMTU方法中,mtu参数说明有问题,mtu应该是最大传输单元
wx.setBLEMTU(Object object)mtu参数说明有问题吧?mtu应该是最大传输单元吧? mtu-超时时间,单位ms,不填表示不会超时
2020-04-14 - wx.setBLEMTU方法调用失败,设置mtu为200回调失败
设备小米9 系统Android10,回调结果{errCode: -1, errMsg: "setBLEMTU:fail:internal error"}
2020-04-23 - 为什么微信小程序不能增加一个修改蓝牙mtu size的api呢
- 需求的场景描述(希望解决的问题) 蓝牙BLE MTU默认是20字节,但是在蓝牙4.2版本以后,蓝牙协议已经通过客户端来修改双方的mtu大小,这样对于传输超过20字节的数据时,省去了分包的工作的,对于小程序的开发大有益处。 - 希望提供的能力 提供修改MTU Size的API
2018-06-17 - 强烈建议小程序蓝牙支持修改MTU功能!!!
强烈建议小程序蓝牙支持修改MTU功能!!! 做数据同步的时候,默认才20字节 /包,要同步一、两兆的数据,这速率太慢了,强烈要求添加修改MTU的api
2018-01-16 - 转发微信小程序里下载的xls表格
- 需求的场景描述(希望解决的问题) 用户下载EXCEL表格文件后, 只能打开, 不能在微信里转发文件. - 希望提供的能力 用户可以在微信里转发下载的EXCEL文件
2019-03-11 - 保存在本地的文件,能否转发给好友
用wx.saveFile保存在本地的文件,能否转发给好友,比如用小程序制作的ppt文件,保存在本地,需要转发给好友看。
2018-06-23 - 大家好,请问可否在小程序内把写入文件系统的文件转发给联系人?没有找到相关API呢
- 需求的场景描述(希望解决的问题) 把用户输入的文字内容写入一个文件,保存到手机。然后再把这个文件转发到“文件传输助手”或者其它联系人,然后再在电脑上编辑使用。 - 希望提供的能力 FileSystemManager增加一个share()方法,调用之后可以触发微信的转发功能,以实现把指定文件转发到联系人的目的。
2018-08-27 - 把写入文件系统的文件转发给联系人
- 用户生成的数据保存到本地文件系统,能够传送到电脑或者其他人 - 希望文件系统能提供发送,分享文件的功能
2019-01-23