1***@qq.com
1***@qq.com
  • 发布:2020-09-16 10:07
  • 更新:2023-11-25 09:25
  • 阅读:2755

plus.bluetooth.readBLECharacteristicValue报错: {"code":10007,"message":"property not support"}

分类:HTML5+

使用plus.bluetooth.readBLECharacteristicValue时,报错: {"code":10007,"message":"property not support"}

我再原生测试了特征值都正常获取到数据,但在H5+就报错了,在H5+能够启动notify功能,但使用readBLECharacteristicValue就报错{"code":10007,"message":"property not support"},根本不知道问题出在哪?
下面是我的代码:
// 启用低功耗蓝牙设备特征值变化时的notify功能
function startCharacteristicsNotify(deviceId){
var serviceId=$("#serviceList").val();
var characteristicId=$("#characteristicList").val();
// 监听低功耗蓝牙设备的特征值变化
plus.bluetooth.onBLECharacteristicValueChange(function(e){
if(characteristicId == e.characteristicId){
var value =JSON.stringify(e.value);//这里返回的value也是空的“{}”

            // 读取低功耗蓝牙设备的特征值  
        plus.bluetooth.readBLECharacteristicValue({  
            deviceId:deviceId,  
            serviceId:serviceId,  
            characteristicId:characteristicId,  
            success:function(e){  
                mui.hideLoading();  
                console.log('read characteristics success: '+JSON.stringify(e));  
                $("#textarea").val(JSON.stringify(e));  
            },  
            fail:function(e){  
                mui.hideLoading();  
                console.log('read characteristics failed: '+JSON.stringify(e));  
                $("#textarea").val(JSON.stringify(e));  
            }  
        });  
    }  
});  
// 启用notify功能  
plus.bluetooth.notifyBLECharacteristicValueChange({  
    deviceId:deviceId,  
    serviceId:serviceId,  
    characteristicId:characteristicId,  
    success:function(e){  
        var characteristics = e.characteristics;  
        console.log(JSON.stringify(characteristics));  
        $("#textnotify").val(JSON.stringify(e));  
        if(characteristics!=undefined){  
            //console.log('get characteristics success: '+characteristics.length);  
            for(var i in characteristics){  
                console.log(i+': '+JSON.stringify(characteristics[i]));  
            }  
        }  
    },  
    fail:function(e){  
        console.log('get characteristics failed: '+JSON.stringify(e));  
        $("#textnotify").val(JSON.stringify(e));  
    }  
});  

}

能够正常启动notify功能,在读取低功耗蓝牙设备的特征值的时候就报错了: {"code":10007,"message":"property not support"}

2020-09-16 10:07 负责人:DCloud_Android_zl 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

有没有哪位大佬能遇到过这种问题或者有其他解决方案的?

  • 1***@qq.com

    你这个问题解决了吗 我也遇到这个问题了

    2021-01-21 13:39

DCloud_App_Array

DCloud_App_Array

补充在什么设备环境下出现的问题?

  • 1***@qq.com (作者)

    是在连接Ble4.0的蓝牙秤设备下出现的问题

    2020-09-23 17:41

  • DCloud_App_Array

    回复 1***@qq.com: 详细描述app运行环境,蓝牙设备信息,才能更快排查问题

    2020-09-23 17:50

小静

小静

请问如何解决的

沧海一生笑

沧海一生笑

我也在用官网的例子, 用ble4.0的模块连接读写都是正常的,估计是你这两个参数不对导致的
var serviceId=$("#serviceList").val();
var characteristicId=$("#characteristicList").val();
因为ble的服务和特征值都有多个,选择不对就无法通讯
我的痛苦在于现在我用ble5.0的模块, 5.0的模块式不用 serviceId 的, 导致我连接上5.0的模块,但是无法收发

牛牛2021

牛牛2021

同样问题

牛牛2021

牛牛2021

同样问题

1***@qq.com

1***@qq.com

请问问题解决掉了吗

s***@126.com

s***@126.com

我遇到了这个问题,发现是同时对 写入通道打开了Notify 造成的,
只要不调用 plus.bluetooth.notifyBLECharacteristicValueChange 就没问题了

要回复问题请先登录注册