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

flutter_reactive_ble扫描BLE设备无UUID,指定UUID扫描失败求助

问题解决:flutter_reactive_ble扫描BLE设备serviceUuids为空/指定UUID扫不到

一、serviceUuids为空的原因及修复

Android BLE扫描默认不会主动返回广播中的服务UUID,需要手动配置扫描选项并确保ESP32的广播包含服务UUID:

  1. 修改flutter扫描代码,添加扫描配置以获取完整广播数据:
_scanStream = flutterReactiveBle.scanForDevices(
  withServices: <Uuid>[], // 留空扫描所有设备
  scanMode: ScanMode.lowLatency,
  requireLocationServicesEnabled: true, // Android 6+必须开启位置服务
).listen((device) {
  _foundBleUARTDevices.add(device);
  print(
      "${device.serviceUuids}---${device.name}---${device.id}---${device.serviceData}---${device.rssi}");
});
  1. 检查ESP32的BLE广播配置,确保将服务UUID加入广播包(以Arduino代码为例):
#define SERVICE_UUID "6E400001-B5A3-F393-E0A9-E50E24DCCA9E"

// 配置广播数据
BLEAdvertisingData advertisingData;
advertisingData.setCompleteServices(BLEUUID(SERVICE_UUID)); // 把服务UUID加入广播
pServer->getAdvertising()->setAdvertisingData(advertisingData);

二、指定UUID扫描不到设备的排查步骤

  • 匹配UUID格式:flutter_reactive_ble的Uuid需与ESP32的UUID完全一致,16位UUID要补全为128位蓝牙标准格式(前缀0000xxxx-0000-1000-8000-00805F9B34FB)。例如ESP32用0xFFE0,flutter中要写:

    Uuid.parse("0000ffe0-0000-1000-8000-00805f9b34fb")
    
  • 检查Android权限:在AndroidManifest.xml中添加必要权限,并在代码中动态申请:

    <!-- 位置权限 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <!-- BLE基础权限 -->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <!-- Android 12+ 额外权限 -->
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
    
  • 验证ESP32广播:用nRF Connect等BLE调试工具扫描ESP32,确认设备可见且服务UUID出现在广播中。如果调试工具也看不到,优先排查ESP32的广播代码。

  • 确认广播完整性:ESP32需配置为广播完整服务UUID,避免只发送缩短格式的UUID,导致扫描过滤失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:01:18