SDK_APP/BLUETOOTH_UUID_DEBUG.md

3.9 KiB
Raw Blame History

蓝牙UUID调试指南

🎯 问题描述

连接蓝牙设备后出现"未找到目标服务"错误这是因为设备的UUID与预设的不匹配。

🔧 解决方案

1. 自动UUID匹配

  • 实现支持多种常见ECG设备UUID
  • 效果自动尝试匹配不同的服务UUID和特征UUID
  • UUID列表
    服务UUID:
    - 0000fff0-0000-1000-8000-00805f9b34fb (默认)
    - 0000ffe0-0000-1000-8000-00805f9b34fb (变体1)
    - 0000ffe5-0000-1000-8000-00805f9b34fb (变体2)
    - 0000ff00-0000-1000-8000-00805f9b34fb (变体3)
    - 0000ff10-0000-1000-8000-00805f9b34fb (变体4)
    
    特征UUID:
    - 0000fff1-0000-1000-8000-00805f9b34fb (默认)
    - 0000ffe1-0000-1000-8000-00805f9b34fb (变体1)
    - 0000ffe6-0000-1000-8000-00805f9b34fb (变体2)
    - 0000ff01-0000-1000-8000-00805f9b34fb (变体3)
    - 0000ff11-0000-1000-8000-00805f9b34fb (变体4)
    

2. 详细调试信息

  • 实现:打印所有可用服务和特征
  • 效果显示设备实际提供的UUID
  • 日志输出
    D/BluetoothManager: 设备提供的服务数量: 3
    D/BluetoothManager: 发现服务: 0000fff0-0000-1000-8000-00805f9b34fb
    D/BluetoothManager: 服务 0000fff0-0000-1000-8000-00805f9b34fb 的特征数量: 2
    D/BluetoothManager: 发现特征: 0000fff1-0000-1000-8000-00805f9b34fb
    D/BluetoothManager: 发现特征: 0000fff2-0000-1000-8000-00805f9b34fb
    

🚀 测试步骤

第一步:连接设备

  1. 点击"连接蓝牙"按钮
  2. 选择你的ECG设备
  3. 等待连接完成

第二步:查看调试信息

  1. 观察Logcat输出

    蓝牙状态: 服务发现成功
    发现服务: 0000fff0-0000-1000-8000-00805f9b34fb
    发现特征: 0000fff1-0000-1000-8000-00805f9b34fb
    
  2. 检查状态信息

    • 如果显示"数据通道已建立,开始接收数据" → 成功
    • 如果显示"未找到匹配的服务或特征" → 需要手动配置

第三步手动配置UUID如果需要

如果自动匹配失败,请:

  1. 查看可用服务UUID

    状态信息: 可用服务: 0000xxxx-0000-1000-8000-00805f9b34fb, ...
    
  2. 记录你的设备UUID

    • 服务UUID: 0000xxxx-0000-1000-8000-00805f9b34fb
    • 特征UUID: 0000yyyy-0000-1000-8000-00805f9b34fb
  3. 修改代码

    private val SERVICE_UUIDS = listOf(
        UUID.fromString("你的服务UUID"),  // 添加你的UUID
        UUID.fromString("0000fff0-0000-1000-8000-00805f9b34fb"),
        // ... 其他UUID
    )
    

📱 常见ECG设备UUID

1. 标准ECG设备

服务UUID: 0000fff0-0000-1000-8000-00805f9b34fb
特征UUID: 0000fff1-0000-1000-8000-00805f9b34fb

2. 心电监护仪

服务UUID: 0000ffe0-0000-1000-8000-00805f9b34fb
特征UUID: 0000ffe1-0000-1000-8000-00805f9b34fb

3. 便携式ECG

服务UUID: 0000ffe5-0000-1000-8000-00805f9b34fb
特征UUID: 0000ffe6-0000-1000-8000-00805f9b34fb

🔍 调试技巧

1. 使用Logcat过滤

adb logcat | grep BluetoothManager

2. 查看设备信息

adb logcat | grep "发现服务\|发现特征"

3. 检查连接状态

adb logcat | grep "设备已连接\|服务发现成功"

⚠️ 注意事项

1. UUID格式

  • UUID必须是标准格式xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  • 16位UUID会自动扩展为128位

2. 权限要求

  • 需要BLUETOOTH_CONNECT权限
  • Android 12+需要额外权限

3. 设备兼容性

  • 不同厂商的ECG设备可能使用不同UUID
  • 需要根据实际设备调整

🎉 预期效果

成功连接:

  • 显示"数据通道已建立,开始接收数据"
  • 开始接收ECG数据
  • 数据传递给数据处理模块

需要调试:

  • 显示"未找到匹配的服务或特征"
  • 显示所有可用服务的UUID
  • 🔧 需要手动添加正确的UUID

现在请重新连接你的设备查看调试信息告诉我你的设备实际使用的UUID🎯