微信公开课
微信公开课小程序热门讨论关于「小程序wxonBLECharacteristicValueChange在安卓无回调」的小程序开发问题
补充:小程序wxonBLECharacteristicValueChange在安卓无回调
展开:help,wxonBLECharacteristicValueChange在android上无法接受返回值,notify开启是成功的,有趣的是在iOS下面一切正常,问了好多人,又说开启notify之后立即就调用了write会发生问题,尝试了延迟和重发依旧没有任何返回值,下图是测试返回的结果····························································································································上图是在ios设备的截图,能接收到返回值··································································································这实在android设备的,没有返回值···································································································求问技术支持,这问题该如何解决,是否有解决方案,下面贴出我的代码,帮忙看看是不是我写的有问题Page({**页面的初始数据*data:{deviceId:FD:76:74:35:99:92,serviceId:,services:[],writeCharacteristicsId:,可写特征值uuidreadCharacteristicsId:,可读特征值uuidnotifyCharacteristicsId:,通知特征值uuid},**生命周期函数监听页面加载*onLoad:function(opt){初始化蓝牙适配器wxopenBluetoothAdapter({success:function(res){consolelog(初始化蓝牙适配器成功,res);},fail:function(err){consolelog(初始化失败,err)}})监听蓝牙适配器状态变化事件wxonBluetoothAdapterStateChange(res={consolelog(状态变化,res)})},start:function(){letthat=this;consolelog(监听设备的连接状态);**连接设备*wxcreateBLEConnection({deviceId:thatdatadeviceId,success:function(res){consolelog(连接设备,res);**监听设备的连接状态*wxonBLEConnectionStateChanged(function(res){consolelog(device${resdeviceId}statehaschanged,connected:${resconnected})});**连接成功,后开始获取设备的服务列表*wxgetBLEDeviceServices({deviceId:thatdatadeviceId,success:function(res){consolelog(deviceservices:,res);thatsetData({services:resservices,serviceId:resservices[0]uuid},()={wxgetBLEDeviceCharacteristics({deviceId:thatdatadeviceId,serviceId:thatdataserviceId,success:function(res){consolelog(devicegetBLEDeviceCharacteristics:,rescharacteristics);for(vari=0;i<rescharacteristicslength;i++){if(rescharacteristics[i]propertiesnotify){thatsetData({notifyCharacteristicsId:rescharacteristics[i]uuid})}if(rescharacteristics[i]propertieswrite){thatsetData({writeCharacteristicsId:rescharacteristics[i]uuid})}if(rescharacteristics[i]propertiesread){thatsetData({readCharacteristicsId:rescharacteristics[i]uuid})}}**顺序开发设备特征notifiy*wxnotifyBLECharacteristicValueChanged({deviceId:thatdatadeviceId,serviceId:thatdataserviceId,characteristicId:thatdatanotifyCharacteristicsId,state:true,success:function(res){consolelog(notifyBLECharacteristicValueChangedsuccess,res);},fail:function(res){consolelog(notifyBLECharacteristicValueChangedfail:,res)},complete:function(res){}});**回调获取设备发过来的数据*wxonBLECharacteristicValueChange(function(res){consolelog(characteristicvaluecomed:,resvalue);{value:ArrayBuffer,deviceId:D8:00:D2:4F:24:17,serviceId:ba11f08c5f140b0d1080007cbe2388510x600000460240,characteristicId:0000cd0400001000800000805f9b34fb0x60800069fb80}letbuffer=resvalueletdataView=newDataView(buffer)letdataResult=[]for(leti=0;i<dataViewbyteLength;i++){dataResultpush(dataViewgetUint8(i)toString(16))}constresult=dataResultconsolelog(result);});**发送开锁命令*thatsend();},fail:function(res){consolelog(res);}})});}})},fail:function(res){consolelog(失败,res);}})},**发送数据到设备中*send:function(){letthat=this,hex=100031B0000018FFFFFFFF0000008900;consttypedArray=newUint8Array(hexmatch([daf]{2}gi)map(function(h){returnparseInt(h,16)}))consolelog(typedArray);constbuffer1=typedArraybufferconsolelog(buffer1)wxwriteBLECharacteristicValue({deviceId:thatdatadeviceId,serviceId:thatdataserviceId,characteristicId:thatdatawriteCharacteristicsId,value:buffer1,success:function(res){consolelog(success指令发送成功);consolelog(res);**读取设备*setTimeout(()={wxreadBLECharacteristicValue({deviceId:thatdatadeviceId,serviceId:thatdataserviceId,characteristicId:thatdatareadCharacteristicsId,success:function(res){consolelog(readBLECharacteristicValue:,res);}})},3000)},fail:function(res){consolelog(res);}})},**生命周期函数监听页面初次渲染完成*onReady:function(){},**生命周期函数监听页面显示*onShow:function(){},**生命周期函数监听页面隐藏*onHide:function(){},**生命周期函数监听页面卸载,同时断开蓝牙*onUnload:function(){letme=this;wxcloseBLEConnection({deviceId:medatadeviceId,success:function(res){consolelog(蓝牙断开,res)mesetData({deviceId:,})}})},})在线等即速小程序:问题已解决:我来跟进下这个问题我设置帮助与反馈右上角上传日志,并提供微信号与时间点哈按这个方式来份日志:你可以尝试下把send()放在notifyBLECharacteristicValueChange成功回调里面,做一点点延时再执行
更多有关「小程序wxonBLECharacteristicValueChange在安卓无回调」的讨论可以前往微信公开课小程序参与互动哦!了解更多
方法1:微信扫描微信公开课小程序码即可订阅热门讨论「小程序wxonBLECharacteristicValueChange在安卓无回调」
方法2:微信搜索微信公开课小程序名称进入,即可订阅热门讨论「小程序wxonBLECharacteristicValueChange在安卓无回调」
方法3:微信网页访问即速商店,长按识别微信公开课小程序码即可订阅热门讨论「小程序wxonBLECharacteristicValueChange在安卓无回调」
微信公开课小程序热门讨论「小程序wxonBLECharacteristicValueChange在安卓无回调」由微信公开课原创摘录于微信小程序商店shop.jisuapp.cn,转载请注明出处。
微信公开课热门讨论「小程序wxonBLECharacteristicValueChange在安卓无回调」由微信公开课开发者向微信用户提供,并对本服务内容、数据资料及其运营行为等真实性、合法性及有效性承担全部责任。