妖妖的耳朵 2022-08-09 16:22 采纳率: 30.8%
浏览 244

APP连接设备蓝牙监听失败

APP连接设备蓝牙进行配网,前面连接蓝牙,获取服务UUID和特征UUID,开启通知都很顺利,但是监听不触发
// 创建连接,发指令启用notify接受设备返回数据
        startNotice() {
            var that = this;
            uni.notifyBLECharacteristicValueChange({
                state: true, // 启用 notify 功能
                deviceId: that.deviceId,
                serviceId: that.services, //服务UUID
                characteristicId: that.notifyUuid, //特征 UUID(设备 TO 手机 APP)
                success(res) {
                    //接收蓝牙返回消息
                    console.log('通知已启用', res);
                    setTimeout(function() {
                        that.onBLECharacteristicValueChange()
                        // that.sendMy(that.writeUuid);
                    }, 500);
                    
                },
                fail(err) {
                    console.log("反回数据失败", err)
                }
            })
        },
        onBLECharacteristicValueChange() {
            uni.onBLECharacteristicValueChange(r => {
                console.log('???');
                 // 结果里有个value值,该值为 ArrayBuffer 类型,所以在控制台无法用肉眼观察到,必须将该值转换为16进制
                console.log('onBLECharacteristicValueChange');
                // 最后将16进制转换为ascii码,就能看到对应的结果
                let resHex = that.ab2hex(r.value)
                let result = that.hexCharCodeToStr(resHex)
                console.log(result)
                uni.closeBLEConnection({
                    deviceId,
                })
                uni.closeBluetoothAdapter()
            })
        },

img

尝试过延时,全局都不行,也没有任何报错,就是不触发监听uni.onBLECharacteristicValueChange
现在监听不触发我不知道该怎么继续进行了
  • 写回答

3条回答 默认 最新

  • 代码小鬼才 2023-01-28 11:11
    关注

    最快的方式就是debug

    评论

报告相同问题?

问题事件

  • 修改了问题 8月9日
  • 创建了问题 8月9日