218 lines
5.5 KiB
Markdown
218 lines
5.5 KiB
Markdown
# 蓝牙扫描故障排除指南
|
||
|
||
## 问题描述
|
||
应用无法扫描到目标设备,需要诊断和解决扫描问题。
|
||
|
||
## 🔍 常见原因分析
|
||
|
||
### 1. 权限问题
|
||
**症状**: 扫描无结果,日志显示权限错误
|
||
**检查项目**:
|
||
- [ ] `BLUETOOTH_SCAN` 权限已授予
|
||
- [ ] `BLUETOOTH_CONNECT` 权限已授予
|
||
- [ ] `ACCESS_FINE_LOCATION` 权限已授予
|
||
- [ ] Android 12+ 需要额外权限
|
||
|
||
**解决方案**:
|
||
1. 进入应用设置 → 权限
|
||
2. 确保所有蓝牙相关权限已开启
|
||
3. 重启应用
|
||
|
||
### 2. 目标设备设置问题
|
||
**症状**: 扫描到其他设备但找不到目标设备
|
||
**检查项目**:
|
||
- [ ] 目标设备蓝牙已开启
|
||
- [ ] 设置为"可发现"或"始终可见"
|
||
- [ ] 未与其他设备连接
|
||
- [ ] 设备在扫描范围内(10米内)
|
||
|
||
**解决方案**:
|
||
1. 打开目标设备设置
|
||
2. 进入蓝牙设置
|
||
3. 确保蓝牙开启且可发现
|
||
4. 断开其他连接
|
||
|
||
### 3. 扫描范围问题
|
||
**症状**: 有时能找到设备,有时找不到
|
||
**检查项目**:
|
||
- [ ] 设备距离在10米内
|
||
- [ ] 无金属屏蔽物
|
||
- [ ] 远离其他蓝牙设备
|
||
- [ ] 无WiFi干扰
|
||
|
||
**解决方案**:
|
||
1. 将设备靠近(1-2米内)
|
||
2. 移除金属物品
|
||
3. 关闭其他蓝牙设备
|
||
4. 尝试不同位置
|
||
|
||
### 4. 系统蓝牙服务问题
|
||
**症状**: 扫描完全无结果
|
||
**检查项目**:
|
||
- [ ] 系统蓝牙服务正常
|
||
- [ ] 蓝牙适配器工作正常
|
||
- [ ] 无其他应用占用蓝牙
|
||
|
||
**解决方案**:
|
||
1. 重启蓝牙服务
|
||
2. 重启设备
|
||
3. 检查系统蓝牙设置
|
||
|
||
## 🛠️ 增强的扫描功能
|
||
|
||
### 新增功能特性:
|
||
1. **详细状态提示** - 显示扫描进度和注意事项
|
||
2. **延长扫描时间** - 从10秒增加到15秒
|
||
3. **智能错误处理** - BLE失败自动切换到传统蓝牙
|
||
4. **设备信息显示** - 显示设备名称、地址、信号强度
|
||
5. **目标设备识别** - 自动识别目标设备并提供连接建议
|
||
|
||
### 扫描流程:
|
||
```
|
||
开始扫描 → 权限检查 → BLE扫描(15秒) → 失败重试 → 传统蓝牙(15秒) → 结果汇总
|
||
```
|
||
|
||
## 📋 测试步骤
|
||
|
||
### 第一步:基础检查
|
||
1. **确认应用权限**
|
||
- 进入应用设置 → 权限
|
||
- 确保蓝牙和位置权限已开启
|
||
|
||
2. **检查系统蓝牙**
|
||
- 进入系统设置 → 蓝牙
|
||
- 确保蓝牙已开启
|
||
|
||
3. **检查目标设备**
|
||
- 确保目标设备蓝牙开启
|
||
- 设置为可发现模式
|
||
|
||
### 第二步:系统测试
|
||
1. **使用系统蓝牙扫描**
|
||
- 在系统蓝牙设置中扫描
|
||
- 查看是否能发现目标设备
|
||
- 记录扫描结果
|
||
|
||
2. **测试设备可见性**
|
||
- 尝试手动配对
|
||
- 确认设备可以被发现
|
||
|
||
### 第三步:应用测试
|
||
1. **启动应用扫描**
|
||
- 点击"连接蓝牙"按钮
|
||
- 观察扫描过程
|
||
- 查看状态信息
|
||
|
||
2. **观察扫描结果**
|
||
- 查看发现的设备列表
|
||
- 检查设备信息显示
|
||
- 记录扫描时间
|
||
|
||
### 第四步:日志分析
|
||
1. **查看应用日志**
|
||
- 打开Android Studio Logcat
|
||
- 过滤蓝牙相关日志
|
||
- 分析扫描过程
|
||
|
||
2. **检查错误信息**
|
||
- 查看权限错误
|
||
- 查看扫描失败原因
|
||
- 记录错误代码
|
||
|
||
## 🔧 调试技巧
|
||
|
||
### 1. 使用系统蓝牙验证
|
||
```bash
|
||
# 在系统蓝牙设置中手动扫描
|
||
# 确认目标设备是否可见
|
||
# 测试手动配对是否成功
|
||
```
|
||
|
||
### 2. 检查设备信息
|
||
- **目标设备型号和Android版本**
|
||
- **蓝牙芯片类型**
|
||
- **支持的蓝牙协议**
|
||
- **设备MAC地址**
|
||
|
||
### 3. 环境测试
|
||
- **尝试不同位置**
|
||
- **检查环境干扰**
|
||
- **测试不同距离**
|
||
- **移除金属物品**
|
||
|
||
### 4. 应用调试
|
||
- **查看详细日志**
|
||
- **观察状态变化**
|
||
- **记录错误信息**
|
||
- **分析扫描模式**
|
||
|
||
## 📊 常见错误码及解决方案
|
||
|
||
| 错误码 | 含义 | 解决方案 |
|
||
|--------|------|----------|
|
||
| SCAN_FAILED_ALREADY_STARTED | 扫描已在进行中 | 等待当前扫描完成 |
|
||
| SCAN_FAILED_APPLICATION_REGISTRATION_FAILED | 应用注册失败 | 重启应用或设备 |
|
||
| SCAN_FAILED_FEATURE_UNSUPPORTED | 设备不支持BLE | 使用传统蓝牙扫描 |
|
||
| SCAN_FAILED_INTERNAL_ERROR | 内部错误 | 重启蓝牙服务 |
|
||
| SCAN_FAILED_OUT_OF_HARDWARE_RESOURCES | 硬件资源不足 | 关闭其他蓝牙应用 |
|
||
|
||
## 🎯 针对目标设备的特殊检查
|
||
|
||
### 目标设备: `A4:C3:37:86:9F:73`
|
||
|
||
1. **设备信息确认**
|
||
- 确认MAC地址正确
|
||
- 检查设备型号
|
||
- 确认Android版本
|
||
|
||
2. **蓝牙设置检查**
|
||
- 确保蓝牙开启
|
||
- 设置为可发现模式
|
||
- 断开其他连接
|
||
|
||
3. **连接测试**
|
||
- 使用系统蓝牙测试连接
|
||
- 确认设备可以被发现
|
||
- 测试手动配对
|
||
|
||
## 📝 故障排除清单
|
||
|
||
### 扫描前检查:
|
||
- [ ] 应用权限已授予
|
||
- [ ] 系统蓝牙已开启
|
||
- [ ] 目标设备蓝牙已开启
|
||
- [ ] 目标设备设置为可发现
|
||
- [ ] 设备距离在10米内
|
||
- [ ] 无其他蓝牙连接
|
||
|
||
### 扫描中观察:
|
||
- [ ] 扫描状态信息显示
|
||
- [ ] 发现设备列表更新
|
||
- [ ] 目标设备是否出现
|
||
- [ ] 扫描时间是否足够
|
||
- [ ] 错误信息提示
|
||
|
||
### 扫描后分析:
|
||
- [ ] 扫描结果汇总
|
||
- [ ] 发现的设备数量
|
||
- [ ] 目标设备是否找到
|
||
- [ ] 设备信息是否完整
|
||
- [ ] 连接建议是否提供
|
||
|
||
## 🚀 下一步操作
|
||
|
||
1. **按照上述步骤逐一检查**
|
||
2. **使用系统蓝牙设置测试**
|
||
3. **记录所有测试结果**
|
||
4. **如果问题持续,提供详细设备信息**
|
||
|
||
## 📞 需要提供的信息
|
||
|
||
如果问题仍然存在,请提供:
|
||
1. **目标设备型号和Android版本**
|
||
2. **系统蓝牙设置测试结果**
|
||
3. **应用扫描日志**
|
||
4. **设备环境信息**
|
||
5. **详细的测试步骤和结果**
|
||
6. **错误信息和状态码**
|