7***@qq.com
7***@qq.com
  • 发布:2025-08-12 17:39
  • 更新:2025-08-12 17:39
  • 阅读:17

【报Bug】低功耗蓝牙安卓发送请求一直报错10007,ios一切正常;

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: .

HBuilderX类型: 正式

HBuilderX版本号: 4.75

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: Mi 10 Lite Zoom

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

// 写入数据
const sendmmm = async (requestStr) => {
isSending.value = true

    const buffer = string2buffer(requestStr)  
    let pos = 0  
    let bytes = buffer.byteLength  
    uni.setStorageSync(  
        'blueTooth',  
        JSON.stringify({  
            deviceId: deviceId.value,  
            serviceId: serviceId.value,  
            characteristicId: writeId.value || characteristicId.value  
        })  
    )  
    const sendSegment = async (segmentSize = 20, delay = 50) => {  
        while (bytes > 0) {  
            const tmp = buffer.slice(pos, pos + segmentSize)  
            await new Promise((resolve, reject) => {  
                uni.writeBLECharacteristicValue({  
                    deviceId: deviceId.value,  
                    serviceId: serviceId.value,  
                    writeType: 'write',  
                    characteristicId: writeId.value || characteristicId.value,  
                    value: tmp,  
                    success:resolve,  
                    fail: reject  
                })  
            })  
            pos += segmentSize  
            bytes -= segmentSize  
            if (bytes > 0) await new Promise(resolve => setTimeout(resolve, delay))  
        }  
    }  

    try {  
        // setTimeout(()=>{  
            await sendSegment()  
            console.log('✅ 数据发送完成')  
        // },2000)  
    } catch (err) {  
        console.error('❌ 数据发送失败', err)  
    }  
    isSending.value = false  
}  

操作步骤:

// 写入数据
const sendmmm = async (requestStr) => {
isSending.value = true

    const buffer = string2buffer(requestStr)  
    let pos = 0  
    let bytes = buffer.byteLength  
    uni.setStorageSync(  
        'blueTooth',  
        JSON.stringify({  
            deviceId: deviceId.value,  
            serviceId: serviceId.value,  
            characteristicId: writeId.value || characteristicId.value  
        })  
    )  
    const sendSegment = async (segmentSize = 20, delay = 50) => {  
        while (bytes > 0) {  
            const tmp = buffer.slice(pos, pos + segmentSize)  
            await new Promise((resolve, reject) => {  
                uni.writeBLECharacteristicValue({  
                    deviceId: deviceId.value,  
                    serviceId: serviceId.value,  
                    writeType: 'write',  
                    characteristicId: writeId.value || characteristicId.value,  
                    value: tmp,  
                    success:resolve,  
                    fail: reject  
                })  
            })  
            pos += segmentSize  
            bytes -= segmentSize  
            if (bytes > 0) await new Promise(resolve => setTimeout(resolve, delay))  
        }  
    }  

    try {  
        // setTimeout(()=>{  
            await sendSegment()  
            console.log('✅ 数据发送完成')  
        // },2000)  
    } catch (err) {  
        console.error('❌ 数据发送失败', err)  
    }  
    isSending.value = false  
}  

预期结果:

不报错发送成功

实际结果:

报错10007

bug描述:

发数据写入,一直报错失败

{
"errMsg": "writeBLECharacteristicValue:fail property not support",
"code": 10007
}

2025-08-12 17:39 负责人:无 分享
已邀请:

要回复问题请先登录注册