You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中使用react-native-ble-manager无法接收BLE通知

解决方案与排查步骤

1. 调整监听器注册时机(关键)

你的代码在每次调用connectToDevice时都会新增监听器,既可能造成内存泄漏,还可能因组件生命周期冲突导致事件无法被捕获。建议将监听器注册逻辑放到组件的useEffect中,确保仅注册一次:

import { useEffect } from 'react';
import { BleManager, BleManagerEmitter } from 'react-native-ble-manager';

// 组件内部
useEffect(() => {
  const valueUpdateListener = BleManagerEmitter.addListener(
    'BleManagerDidUpdateValueForCharacteristic',
    ({ value, peripheral, characteristic, service }) => {
      // 先确认是否收到原始数据,再做格式转换
      console.log(`收到设备原始数据:`, value);
      // 字节数组转字符串示例(需根据设备实际编码调整,如UTF-8)
      const receivedText = String.fromCharCode(...value);
      console.log(`转换后文本:${receivedText}`);
    }
  );

  // 组件卸载时移除监听器,避免内存泄漏
  return () => {
    valueUpdateListener.remove();
  };
}, []);

2. 验证设备端与特征属性

  • 用BLE调试工具(如nRF Connect)连接目标设备,找到服务6E400001-B5A3-F393-E0A9-E50E24DCCA9E下的特征6E400003-B5A3-F393-E0A9-E50E24DCCA9E,手动开启通知,确认是否能收到数据。如果工具能收到,问题出在APP代码;如果工具也收不到,排查设备固件的发送逻辑。
  • 通过retrieveServices返回的peripheralInfo,检查目标特征的properties字段是否包含Notify属性,确认该特征支持通知功能。

3. 手动写入CCCD描述符(备选方案)

部分特殊设备需要手动写入客户端特征配置描述符(CCCD)才能开启通知,可尝试在startNotification之后补充该操作:

const cccdUUID = '00002902-0000-1000-8000-00805f9b34fb';
// 写入0x0100(小端模式)开启通知
BleManager.write(
  deviceId,
  serviceUUID,
  cccdUUID,
  [0x01, 0x00]
)
.then(() => console.log('CCCD配置成功'))
.catch(err => console.error('CCCD配置失败:', err));

4. 统一UUID大小写格式

部分BLE设备对UUID的大小写敏感,尝试将服务和特征UUID统一转为小写或大写后再调用接口:

const serviceUUID = "6E400001-B5A3-F393-E0A9-E50E24DCCA9E".toLowerCase();
const characteristicUUID = "6E400003-B5A3-F393-E0A9-E50E24DCCA9E".toLowerCase();

5. 校验特征存在性

在启动通知前,先从peripheralInfo中确认目标特征是否存在,避免因服务/特征未正确获取导致的异常:

// 从设备服务中查找目标特征
const targetCharacteristic = peripheralInfo.services
  ?.find(svc => svc.uuid === serviceUUID)
  ?.characteristics?.find(char => char.uuid === characteristicUUID);

if (!targetCharacteristic) {
  console.error('未找到目标特征,请检查UUID是否正确');
  return;
}

内容的提问来源于stack exchange,提问作者govardhan ob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:56:05