SDK_APP/BLUETOOTH_UUID_DEBUG.md

144 lines
3.9 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 蓝牙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🎯