给公司开发的一款蓝牙助手小程序,自己测试用的iphone6s plus,所有的功能都完美运行,但是到其他手机尤其是安卓机和高版本的iphone,向蓝牙设备写数据都显示成功,但实际上对方并没有收到,也无法做出响应。现在已知的iphone7、iphone8、iphoneXR、小米9、荣耀V9、荣耀V10都有这种情况,测试成功的有iphone6splus、华为P10 、小米5,不知道是什么原因,希望官方能帮助解惑
写入数据的代码,参数和arraybuffer转换函数都是测试过没问题的
/**
* 向蓝牙发送数据
* @param {Object} dataArr
* @param {Object} deviceId
* @param {Object} serviceId
* @param {Object} characteristicId
*/
const sendData=function(dataArr,deviceId,serviceId,characteristicId,callback){
// 数组转内存
let ab=this.arr2ab(dataArr),myRes={};
// 传数据到蓝牙设备
uni.writeBLECharacteristicValue({
deviceId:deviceId,
serviceId:serviceId,
characteristicId:characteristicId,
value:ab,
success:function(res){
// console.log(‘数据写入成功’)
myRes={code:0,msg:dataArr[0]+‘数据写入成功’},
callback(myRes)
},
fail:function(res){
myRes={code:1,msg:dataArr[0]+‘数据写入失败’},
callback(myRes)
}
})
}
补充一下,开发用的是uni-app