# 蓝牙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. **修改代码**: ```kotlin 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!🎯