“已配对”只证明最底层关系建立
Classic Bluetooth Pairing 成功,不代表 RFCOMM、iAP2、MFi Authentication 或 EA Protocol Session 已建立。iOS App 能否通过 EASession 打开流,取决于整条链路全部完成。
分阶段检查
- Pairing:设备地址、配对信息和重连状态是否正常。
- SDP / RFCOMM:服务记录、通道与连接是否建立并保持。
- iAP2:Identification 和 Authentication 是否完成。
- EA Protocol:Protocol String 是否与 iOS App 声明一致。
- EASession:InputStream / OutputStream 是否成功调度并进入 open 状态。
常见根因
Protocol String 不一致
外设报告的字符串与 App 支持列表不一致,配对正常但 App 不会打开对应 Session。
双传输冲突
USB 和 Bluetooth 同时存在时,没有明确互斥、优先级和状态清理。
RFCOMM 连接假在线
底层连接保留,但数据通道已失效,重连没有重新初始化完整协议状态。
App 生命周期
前后台切换、附件通知和 Stream 调度处理不完整。
验证建议
分别执行首次配对、已配对重连、App 前后台、蓝牙开关、USB 插拔与蓝牙切换、手机重启、外设休眠唤醒,确保每个阶段都能清理并重新建立。