165 lines
4.0 KiB
Markdown
165 lines
4.0 KiB
Markdown
|
|
# 连接超时故障排除指南
|
|||
|
|
|
|||
|
|
## 问题描述
|
|||
|
|
应用尝试连接到目标设备 `A4:C3:37:86:9F:73` 时出现连接超时错误。
|
|||
|
|
|
|||
|
|
## 日志分析
|
|||
|
|
|
|||
|
|
### 关键日志信息
|
|||
|
|
```
|
|||
|
|
尝试直接连接到设备: A4:C3:37:86:9F:73
|
|||
|
|
on_create_connection_timeout, address: a4:c3:37:86:9f:73
|
|||
|
|
Connection failed le remote:a4:c3:37:86:9f:73
|
|||
|
|
status=147 clientIf=16 connected=false
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 问题分析
|
|||
|
|
- **连接启动成功** - 应用成功发起连接请求
|
|||
|
|
- **30秒超时** - 连接在30秒后超时
|
|||
|
|
- **状态码147** - 表示连接失败
|
|||
|
|
- **LE连接失败** - 低功耗蓝牙连接失败
|
|||
|
|
|
|||
|
|
## 可能原因及解决方案
|
|||
|
|
|
|||
|
|
### 1. 目标设备蓝牙设置问题
|
|||
|
|
|
|||
|
|
#### 检查项目:
|
|||
|
|
- [ ] 蓝牙已开启
|
|||
|
|
- [ ] 设置为"可发现"模式
|
|||
|
|
- [ ] 未与其他设备连接
|
|||
|
|
- [ ] 蓝牙服务正常运行
|
|||
|
|
|
|||
|
|
#### 解决步骤:
|
|||
|
|
1. **打开目标手机设置**
|
|||
|
|
2. **进入蓝牙设置**
|
|||
|
|
3. **确保蓝牙已开启**
|
|||
|
|
4. **设置为"始终可见"或"可发现"**
|
|||
|
|
5. **断开其他蓝牙连接**
|
|||
|
|
|
|||
|
|
### 2. 设备距离和干扰
|
|||
|
|
|
|||
|
|
#### 检查项目:
|
|||
|
|
- [ ] 设备距离在10米内
|
|||
|
|
- [ ] 无金属屏蔽物
|
|||
|
|
- [ ] 远离其他蓝牙设备
|
|||
|
|
- [ ] 无WiFi干扰
|
|||
|
|
|
|||
|
|
#### 解决步骤:
|
|||
|
|
1. **将两台设备靠近**(1-2米内)
|
|||
|
|
2. **移除金属物品**
|
|||
|
|
3. **关闭其他蓝牙设备**
|
|||
|
|
4. **尝试不同位置**
|
|||
|
|
|
|||
|
|
### 3. 系统蓝牙服务问题
|
|||
|
|
|
|||
|
|
#### 检查项目:
|
|||
|
|
- [ ] 系统蓝牙服务正常
|
|||
|
|
- [ ] 蓝牙权限已授予
|
|||
|
|
- [ ] 无其他应用占用蓝牙
|
|||
|
|
|
|||
|
|
#### 解决步骤:
|
|||
|
|
1. **重启两台设备的蓝牙**
|
|||
|
|
2. **检查应用权限**
|
|||
|
|
3. **关闭其他蓝牙应用**
|
|||
|
|
4. **重启设备**
|
|||
|
|
|
|||
|
|
### 4. 设备兼容性问题
|
|||
|
|
|
|||
|
|
#### 检查项目:
|
|||
|
|
- [ ] 目标设备支持BLE
|
|||
|
|
- [ ] 设备型号和Android版本
|
|||
|
|
- [ ] 蓝牙协议兼容性
|
|||
|
|
|
|||
|
|
#### 解决步骤:
|
|||
|
|
1. **确认设备支持BLE**
|
|||
|
|
2. **更新系统版本**
|
|||
|
|
3. **尝试传统蓝牙连接**
|
|||
|
|
4. **使用系统蓝牙设置测试**
|
|||
|
|
|
|||
|
|
## 增强的连接功能
|
|||
|
|
|
|||
|
|
### 新增功能:
|
|||
|
|
1. **详细状态提示** - 显示连接进度和注意事项
|
|||
|
|
2. **自动重试机制** - 超时后自动尝试传统蓝牙连接
|
|||
|
|
3. **错误状态码解析** - 根据状态码提供具体建议
|
|||
|
|
4. **连接超时设置** - 30秒BLE + 15秒传统蓝牙
|
|||
|
|
|
|||
|
|
### 连接流程:
|
|||
|
|
```
|
|||
|
|
开始连接 → BLE连接(30秒) → 超时重试 → 传统蓝牙(15秒) → 最终结果
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 测试步骤
|
|||
|
|
|
|||
|
|
### 第一步:基础检查
|
|||
|
|
1. **确认目标设备蓝牙开启**
|
|||
|
|
2. **设置为可发现模式**
|
|||
|
|
3. **断开其他连接**
|
|||
|
|
4. **将设备靠近**
|
|||
|
|
|
|||
|
|
### 第二步:系统测试
|
|||
|
|
1. **在系统蓝牙设置中扫描**
|
|||
|
|
2. **查看是否发现目标设备**
|
|||
|
|
3. **尝试手动配对**
|
|||
|
|
4. **记录配对结果**
|
|||
|
|
|
|||
|
|
### 第三步:应用测试
|
|||
|
|
1. **启动应用**
|
|||
|
|
2. **长按"连接蓝牙"按钮**
|
|||
|
|
3. **输入MAC地址:A4:C3:37:86:9F:73**
|
|||
|
|
4. **观察连接过程**
|
|||
|
|
|
|||
|
|
### 第四步:日志分析
|
|||
|
|
1. **查看应用状态信息**
|
|||
|
|
2. **检查Logcat日志**
|
|||
|
|
3. **记录错误信息**
|
|||
|
|
4. **分析失败原因**
|
|||
|
|
|
|||
|
|
## 常见错误码及含义
|
|||
|
|
|
|||
|
|
| 状态码 | 含义 | 解决方案 |
|
|||
|
|
|--------|------|----------|
|
|||
|
|
| 0 | 正常断开 | 检查设备状态 |
|
|||
|
|
| 8 | 连接超时 | 检查设备可见性和距离 |
|
|||
|
|
| 19 | 连接被拒绝 | 检查设备是否忙 |
|
|||
|
|
| 22 | 连接失败 | 检查协议兼容性 |
|
|||
|
|
| 147 | 连接失败 | 检查设备状态和设置 |
|
|||
|
|
|
|||
|
|
## 调试建议
|
|||
|
|
|
|||
|
|
### 1. 使用系统蓝牙测试
|
|||
|
|
- 在系统蓝牙设置中手动连接
|
|||
|
|
- 验证设备是否可见和可连接
|
|||
|
|
- 确认配对是否成功
|
|||
|
|
|
|||
|
|
### 2. 检查设备信息
|
|||
|
|
- 目标设备型号和Android版本
|
|||
|
|
- 蓝牙芯片类型
|
|||
|
|
- 支持的蓝牙协议
|
|||
|
|
|
|||
|
|
### 3. 环境测试
|
|||
|
|
- 尝试不同位置
|
|||
|
|
- 检查环境干扰
|
|||
|
|
- 测试不同距离
|
|||
|
|
|
|||
|
|
### 4. 应用调试
|
|||
|
|
- 查看详细日志
|
|||
|
|
- 观察状态变化
|
|||
|
|
- 记录错误信息
|
|||
|
|
|
|||
|
|
## 下一步操作
|
|||
|
|
|
|||
|
|
1. **按照上述步骤逐一检查**
|
|||
|
|
2. **使用系统蓝牙设置测试连接**
|
|||
|
|
3. **记录所有测试结果**
|
|||
|
|
4. **如果问题持续,提供详细设备信息**
|
|||
|
|
|
|||
|
|
## 需要提供的信息
|
|||
|
|
|
|||
|
|
如果问题仍然存在,请提供:
|
|||
|
|
1. **目标设备型号和Android版本**
|
|||
|
|
2. **系统蓝牙设置测试结果**
|
|||
|
|
3. **详细的错误日志**
|
|||
|
|
4. **设备环境信息**
|
|||
|
|
5. **测试步骤和结果**
|