问题解决了,我自己逻辑问题,在安卓里面没有体现出来。我是同步开启notifyBLECharacteristicValueChange(监听特征值变化),然后获取特征值,关闭蓝牙。iOS因为蓝牙关闭了,导致没有获取到。但是安卓(一部手机不代表全部安卓)关闭前获取到特征值变化了。
安卓正常,IOS调用wx.notifyBLECharacteristicValueChange无回调https://developers.weixin.qq.com/miniprogram/dev/api/device/bluetooth-ble/wx.notifyBLECharacteristicValueChange.html 安卓正常,IOS调用wx.notifyBLECharacteristicValueChange无回调,既没有调用成功方法,也没有调用失败方法、complete也没有被调用。 如果删除一个参数就会失败,提示参数异常。 console.log('111111111111111111111') var that = this console.log("ddddd:",app.globalData.wendudeviceMac,app.BLEInformation.notifyServiceId,app.BLEInformation.notifyCharaterId) wx.notifyBLECharacteristicValueChange({ // type: 'notification', state: true, deviceId: app.globalData.wendudeviceMac, serviceId: app.BLEInformation.notifyServiceId, characteristicId: app.BLEInformation.notifyCharaterId,//notifyCharaterId, type:'notification', success: function (res) { console.log('222222222222222222') }, fail:function(res){ console.log('333333333333333') console.log("失败:",res) }, complete:function(res){ console.log('44444444444444444444444') console.log("最终:",res) 只输出 console.log('111111111111111111111') var that = this console.log("ddddd:",app.globalData.wendudeviceMac,app.BLEInformation.notifyServiceId,app.BLEInformation.notifyCharaterId) 其他的都没有响应。
2021-04-15由于系统限制,Android 上获取到的 [代码]deviceId[代码] 为设备 MAC 地址,iOS 上则为设备 uuid。因此 [代码]deviceId[代码] 不能硬编码到代码中
小程序在安卓设备上可以正确下发指令,在iphone上提示10004(没有找到指定服务),这是为什么?小程序调用uni.writeBLECharacteristicValue下发命令和调用uni.notifyBLECharacteristicValueChange打开设备notify,在Android设备上调用成功,但是在iphone上提示10004(没有找到指定服务),有人遇到过这个问题吗?调用api时使用到的deviceid、serviceid、characteristicId都是写死的,是不是在Android设备上获取到的deviceid、serviceid、characteristicId和在iphone上获取到的deviceid、serviceid、characteristicId不一样?
2021-04-15