uni-app 5+蓝牙监听不到notify值

uni-app 5+蓝牙监听不到notify值

开发环境 版本号 项目创建方式
HBuilderX 3.4.3 云端

操作步骤:

蓝牙监听:plus.bluetooth.onBLECharacteristicValueChange
5+上面notify值获取到的value是空,使用蓝牙工具是可以获取到的
尝试用uniapp也能获取到notify值


### 预期结果:

可以打印蓝牙设备传给手机的notify

实际结果:

获取为value: {}


### bug描述:

5+蓝牙监听不到notify
2 回复

5+: onBLECharacteristicValueChange: {“deviceId”:“E8:31:CD:AC:53:96”,“serviceId”:“000000EE-0000-1000-8000-00805F9B34FB”,“characteristicId”:“0000EE01-0000-1000-8000-00805F9B34FB”,“value”:{}}


在使用 uni-app 进行 5+ 蓝牙开发时,如果无法监听到 notify 值,可能是由于以下几个原因导致的。以下是一些常见的排查步骤和解决方案:

1. 确保设备已连接并已启用通知

首先,确保蓝牙设备已成功连接,并且已启用通知(Notify)功能。你可以通过以下步骤来启用通知:

uni.writeBLECharacteristicValue({
  deviceId: deviceId,
  serviceId: serviceId,
  characteristicId: characteristicId,
  value: new Uint8Array([0x01]).buffer, // 启用通知
  success: function (res) {
    console.log('writeBLECharacteristicValue success', res);
  },
  fail: function (err) {
    console.error('writeBLECharacteristicValue fail', err);
  }
});

2. 监听 onBLECharacteristicValueChange 事件

确保你已经正确监听了 onBLECharacteristicValueChange 事件,该事件会在特征值发生变化时触发。

uni.onBLECharacteristicValueChange(function (res) {
  console.log('characteristic value changed:', res.value);
});

3. 检查特征值是否支持通知

确保你正在监听的特征值(Characteristic)支持通知(Notify)功能。你可以通过 getBLEDeviceCharacteristics 方法获取特征值的属性,检查 properties 是否包含 notify

uni.getBLEDeviceCharacteristics({
  deviceId: deviceId,
  serviceId: serviceId,
  success: function (res) {
    console.log('getBLEDeviceCharacteristics success', res.characteristics);
    res.characteristics.forEach(function (characteristic) {
      if (characteristic.uuid === characteristicId) {
        console.log('Characteristic properties:', characteristic.properties);
      }
    });
  },
  fail: function (err) {
    console.error('getBLEDeviceCharacteristics fail', err);
  }
});

4. 检查设备是否发送了通知

确保蓝牙设备确实发送了通知。你可以使用其他蓝牙调试工具(如 nRF Connect)来验证设备是否正常发送通知。

5. 检查权限和配置

确保你的应用已经获取了必要的蓝牙权限,并且在 manifest.json 中正确配置了蓝牙相关的权限。

{
  "permissions": {
    "bluetooth": {
      "description": "蓝牙权限"
    }
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!