HarmonyOS 鸿蒙Next 在测试蓝牙发送数据时,出现蓝牙数据发送失败的情况,打印显示蓝牙发送失败:Error: BussinessError 401: Invalid parameter

HarmonyOS 鸿蒙Next 在测试蓝牙发送数据时,出现蓝牙数据发送失败的情况,打印显示蓝牙发送失败:Error: BussinessError 401: Invalid parameter 测试过了设置descriptors参数和不设置descriptors参数,两次得到的结果依然都是蓝牙数据发送失败,ble客户端发送数据失败。

测试手机为mate60pro,用其他手机连接安卓app测试,对比mate60pro连接鸿蒙app,情况如下:

  1. 安卓app连接蓝牙时esp的打印:

  2. 鸿蒙app连接蓝牙时esp的打印:

对比发现鸿蒙app这边没有找到相关的写服务。连接是成功的,mtu也设置成功了,但就是没有写服务。

目前想知道究竟错误的地方在哪里?服务uuid和特征值uuid是没问题的。

发送蓝牙数据方法:

static sendValueToBle1(blenum: number, value: string, callback?: (val: number) => void) {
    let charBuffer = new ArrayBuffer(value.length);
    let charValue = new Uint8Array(charBuffer);
    for (let i = 0; i < value.length; i++) {
        charValue[i] = value.charCodeAt(i); // 字符转换为unicode
    }
    try {
        let characteristic: ble.BLECharacteristic = {
            serviceUuid: servicesUUID,
            characteristicUuid: writeCharacteristicsUUID,
            characteristicValue: charBuffer,
            descriptors: []
        };
        let device: ble.GattClientDevice =
            ble.createGattClientDevice(BleManager.blemanager2[blenum].bleMAC.toUpperCase());
        let success = device.writeCharacteristicValue(
            characteristic,
            ble.GattWriteType.WRITE
        );
        logtofile(`蓝牙发送${success}:${value}`, 1);

        //if (callback) callback(success ? 1 : 0);
    } catch (error) {
        logtofile(`蓝牙发送失败:${error}`, 1);
        if (callback) {
            callback(-1);
        }
    }
}

可能的回调函数

if (callback != null) {
    callback(1);
}

更多关于HarmonyOS 鸿蒙Next 在测试蓝牙发送数据时,出现蓝牙数据发送失败的情况,打印显示蓝牙发送失败:Error: BussinessError 401: Invalid parameter的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next 在测试蓝牙发送数据时,出现蓝牙数据发送失败的情况,打印显示蓝牙发送失败:Error: BussinessError 401: Invalid parameter的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,当你在测试蓝牙发送数据时遇到错误代码 BussinessError 401: Invalid parameter,这通常表示在蓝牙数据传输过程中,传递给蓝牙接口的参数不合法或不符合要求。具体原因可能包括但不限于以下几种情况:

  1. 参数格式错误:传递给蓝牙接口的参数类型或格式不符合API的要求。例如,参数可能为空、数据类型不正确或不符合蓝牙协议规范。

  2. 数据长度超出限制:发送的数据长度可能超过了蓝牙协议或设备支持的最大传输长度。

  3. 设备未连接或状态不正确:在发送数据之前,蓝牙设备可能未正确连接,或者设备当前的状态不适合进行数据传输。

  4. 权限问题:应用可能没有正确配置或获取蓝牙相关权限,导致无法正常执行蓝牙操作。

  5. 协议不匹配:使用的蓝牙协议可能与设备或服务不兼容,导致参数校验失败。

要解决此问题,首先确保传递给蓝牙接口的所有参数都符合API文档中的要求,并检查设备连接状态、权限配置以及数据传输长度限制。此外,确保使用的蓝牙协议与设备和服务相匹配。

回到顶部