uni-app在app端(android)调用蓝牙写入特征值时报错10013

uni-app在app端(android)调用蓝牙写入特征值时报错10013

信息类别 详情
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 WINDOWS10
HBuilderX类型 正式
HBuilderX版本 4.24
手机系统 Android
手机系统版本 Android 13
手机厂商 vivo
手机机型 vivo Y66iA
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

bug描述:

uni-app在app端(android)调用蓝牙写入特征值报错10013;微信小程序写入正常

示例代码:

uni.writeBLECharacteristicValue({  
    deviceId,  
    serviceId,  
    characteristicId,  
    value: data,  
    success(res) {  
        console.log('writeBLECharacteristicValue success'+ JSON.stringify(res));  
        uni.showToast({  
            title:"指令发送成功",  
            duration:2000  
        })  

    },  
    fail: e => {  
        console.log('writeBLECharacteristicValue,错误码:'+ JSON.stringify(e));  
        uni.showToast({  
            title:JSON.stringify(e),  
            duration:5000  
        })  
        that.device.name = JSON.stringify(e)  
    },  
    complete() {  
        uni.hideLoading();  
    }  
})

操作步骤:

uni.writeBLECharacteristicValue({  
    deviceId,  
    serviceId,  
    characteristicId,  
    value: data,  
    success(res) {  
        console.log('writeBLECharacteristicValue success'+ JSON.stringify(res));  
        uni.showToast({  
            title:"指令发送成功",  
            duration:2000  
        })  

    },  
    fail: e => {  
        console.log('writeBLECharacteristicValue,错误码:'+ JSON.stringify(e));  
        uni.showToast({  
            title:JSON.stringify(e),  
            duration:5000  
        })  
        that.device.name = JSON.stringify(e)  
    },  
    complete() {  
        uni.hideLoading();  
    }  
})

预期结果:

uni.writeBLECharacteristicValue({  
    deviceId,  
    serviceId,  
    characteristicId,  
    value: data,  
    success(res) {  
        console.log('writeBLECharacteristicValue success'+ JSON.stringify(res));  
        uni.showToast({  
            title:"指令发送成功",  
            duration:2000  
        })  

    },  
    fail: e => {  
        console.log('writeBLECharacteristicValue,错误码:'+ JSON.stringify(e));  
        uni.showToast({  
            title:JSON.stringify(e),  
            duration:5000  
        })  
        that.device.name = JSON.stringify(e)  
    },  
    complete() {  
        uni.hideLoading();  
    }  
})

实际结果:

uni.writeBLECharacteristicValue({  
    deviceId,  
    serviceId,  
    characteristicId,  
    value: data,  
    success(res) {  
        console.log('writeBLECharacteristicValue success'+ JSON.stringify(res));  
        uni.showToast({  
            title:"指令发送成功",  
            duration:2000  
        })  

    },  
    fail: e => {  
        console.log('writeBLECharacteristicValue,错误码:'+ JSON.stringify(e));  
        uni.showToast({  
            title:JSON.stringify(e),  
            duration:5000  
        })  
        that.device.name = JSON.stringify(e)  
    },  
    complete() {  
        uni.hideLoading();  
    }  
})

更多关于uni-app在app端(android)调用蓝牙写入特征值时报错10013的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

打印了日志,问题解决了,安卓APP连接蓝牙成功后,需要延迟600-1000ms,这样就能拿到特征值 createBLEConnection() {
let that = this;
uni.createBLEConnection({
deviceId: that.device.uuid,
success: res => {
that.writelog(‘连接接蓝牙成功’,JSON.stringify(res));
that.device.bleStatus = “0”;
//设置蓝牙低功耗的最大传输单元
that.setBLEMTU()
that.getBLEDeviceRSSI()
//安卓APP连接蓝牙水杯成功后,需要延迟600-1000ms,这样就能拿到特征值
setTimeout(function() {
that.getBLEDeviceServices();
}, 1000)

            },  
            fail: e => {  
                that.writelog('连接接蓝牙失败',JSON.stringify(e));  
                that.device.bleStatus = "1";  
            }  
        });  
    },<br>

更多关于uni-app在app端(android)调用蓝牙写入特征值时报错10013的实战教程也可以访问 https://www.itying.com/category-93-b0.html


你好,打印检查一下deviceId 参数

回到顶部