收藏
回答

wx.onBluetoothDeviceFound API重复返回不存在的蓝牙数据包?

每次开启扫描 - > 连接蓝牙设备 - >关闭扫描,再次开启扫描时会收到上次扫描的结果,并且时间戳是实时更新的,用nrf connect工具并没有扫到相关的蓝牙包,但是接口会重复返回,怎么解决?

iPhone 15 Pro系统iOS 17.6上发现此问题

//开启扫描的代码段
function onIotBluetoothDeviceFound() {
    scan()
    onBLECharacteristicValueChange()
    onBLEConnectionStateChange()
    wx.onBluetoothDeviceFound((result) => {


        let device = result.devices[0]
        let data = device.serviceData
        if (data === undefined || data === null) return //过滤
        data = data["0000xxxx-0000-1000-8000-00xxxxxxxxxx"]
        if (data === undefined || data === null) return
        data = Array.from(new Uint8Array(data))
        console.log("数据 = ", Bytes2Str(data), "是否合法 = ", data.length, 
            Date.now(), "信号强度 = ", device.RSSI);
    })
}

//关闭扫描
function stopScan() {
    wx.stopBluetoothDevicesDiscovery({
        success(res) {
            console.log("关闭发现设备事件监听");
            wx.offBluetoothDeviceFound()
            console.log("***************停止扫描******************");
            console.log(res)
        }
    })
}



最后一次编辑于  06-24
回答关注问题邀请回答
收藏
登录 后发表内容