SDK_APP/BLUETOOTH_UUID_DEBUG.md

144 lines
3.9 KiB
Markdown
Raw Normal View History

2025-09-02 18:30:21 +08:00
# 蓝牙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🎯