onBLECharacteristicValueChange() {
console.log('监听tizengzhi变化')
// 必须在这里的回调才能获取
uni.onBLECharacteristicValueChange((characteristic) => {
console.log('监听低功耗蓝牙设备的特征值变化事件成功');
console.log(JSON.stringify(characteristic));
this.valueChangeData = characteristic
});
},
/**
* 订阅操作成功后需要设备主动更新特征值的 value,才会触发 uni.onBLECharacteristicValueChange 回调。
*/
notifyBLECharacteristicValueChange() {
let self = this;
let deviceId = this.equipment[0].deviceId;
let serviceId = this.servicesData[0].uuid;
let characteristicId = this.characteristicsData[0].uuid;
let notify = this.characteristicsData[0].properties.notify;
console.log(deviceId,'设备id+1');
console.log(serviceId);
console.log(characteristicId,'设备特征值+1');
console.log(notify);
uni.notifyBLECharacteristicValueChange({
state: true, // 启用 notify 功能
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
deviceId,
// 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取
serviceId,
// 这里的 characteristicId 需要在 getBLEDeviceCharacteristics 接口中获取
characteristicId,
success: (res) => {
console.log('notifyBLECharacteristicValueChange success:' + res.errMsg);
console.log(res, '功能启用');
setTimeout(() => {
this.onBLECharacteristicValueChange()
}, 1000)
}
});
},
uni.onBLECharacteristicValueChange((characteristic) => {
console.log('监听低功耗蓝牙设备的特征值变化事件成功');
console.log(JSON.stringify(characteristic));
this.valueChangeData = characteristic
});这个方法就是不起效果监听不到变化
3 个回复
i***@126.com
找了很久的问题,分享我的解决办法防止内耗。
4***@qq.com
是否对象指针错了?
setTimeout(() => {
self .onBLECharacteristicValueChange()
这样试一下
yaomu
问题解决了吗,我遇到同样的问题,求解
3***@qq.com
解决了吗,遇到同样的问题
2021-11-11 17:38
yaomu
回复 3***@qq.com: 解决了
2021-12-09 09:54
yaomu
回复 3***@qq.com: 直接输出没有值,需要转十六进制输出
2021-12-09 10:00
阿_怪
回复 1***@qq.com: 怎么搞的可以说说吗
2022-05-10 16:51