uni.notifyBLECharacteristicValueChange({
deviceId,
serviceId,
characteristicId,
state: true,
success: function(res) {
console.log("监听成功");//打印监听成功,但实际一直收不到数据
console.log(characteristicId)
uni.onBLECharacteristicValueChange(function(res) {
console.log('value.......')
//这个回调一直没反应
});
},
fail: () => {
// console.log('监听失败')
// console.log(characteristicId)
}
});
- 发布:2021-04-30 20:29
- 更新:2021-05-01 20:15
- 阅读:878
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.1.9
手机系统: Android
手机系统版本号: Android 10
手机厂商: 小米
手机机型: 红米k20
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
目前测试必然收不到数据,经过小程序“开光”后可以收数据,然后把蓝牙设备重启后又不能收数据
目前测试必然收不到数据,经过小程序“开光”后可以收数据,然后把蓝牙设备重启后又不能收数据
预期结果:
收不到数据
收不到数据
实际结果:
收不到数据
收不到数据
bug描述:
app连接蓝牙设备后监听成功了但收不到蓝牙设备的数据,只能App发数据给蓝牙设备,但是在小程序中是可以收到数据的,而且小程序收一次数据后再回到app,然后app也可以收数据了
1 个回复
7***@qq.com (作者)
自己发现了一个很无聊的解决方法。。。就是uni.notifyBLECharacteristicValueChange监听成功前不要调用uni.readBLECharacteristicValue方法,延迟调用uni.readBLECharacteristicValue,或者这个方法干脆不调用我这边测试也可以,这样监听成功后可以正常监听到特征值变化,如果还不能监听到特征值变化可以在监听成功后先App给蓝牙设备发一条数据,这样就可以监听到了...目前只在安卓测试过有效,ios没测试,希望官方能尽快解决这个问题