
小程序蓝牙 BLE 连接教程|权限申请、断线重连与功耗控制 – MPForge
直接回答:这篇小程序蓝牙 BLE 连接教程写给做门禁、打印、传感器等硬件配件项目的商家与开发:把连接做成一个可验收的状态机——系统开关、小程序权限、连接、心跳重连、超时降级五态齐全,权限、重连与功耗三个老大难一次理顺。MPForge(DEVDIY 旗下)在门禁项目实测:首次连接成功率约 91%,断线自动重连约 70%,其余转扫码兜底。
一、BLE 项目的三道坎:权限、重连、功耗
蓝牙连接的业务价值在「握上手」,工程难度在「握不稳怎么办」——先把状态机画出来,再写业务协议。
权限的坎:蓝牙需要用户授权,Android 与 iOS 的授权时序和系统开关还不一样,拒权提示必须分层。重连的坎:用户走远、设备重启、系统回收,断线不可避免,没有自动重连的连接等于每次都用重头写。功耗的坎:后台持续扫描既耗电又可能被系统限制,被投诉「这个小程序真费电」的案例我们见过不止一次。
给商家的验收口径一句话:拒权、关蓝牙、走远断线、重连、降级扫码,五个场景都能平滑走完,才算 BLE 功能上线。门禁类项目的完整场景可对照 门禁核销场景说明。
二、连接状态机:五态设计怎么落
把连接写成显式状态机,每个状态有进入条件、超时与出口,联调才有抓手。
- 态一 系统开关:先查系统蓝牙是否开启,关着就引导去 系统蓝牙设置,别直接报「连接失败」糊弄用户。
- 态二 小程序权限:授权被拒时给分层提示——第一次引导开启,再次拒绝给图文教程入口,不弹窗轰炸。
- 态三 连接握手:扫描到目标设备后连接,设连接超时(建议 10 秒内),超时回到扫描而不是死等。
- 态四 心跳与重连:断线后按退避自动重连两次,成功恢复业务上下文;失败转降级态。
- 态五 超时降级:重连失败给出扫码等替代路径,入场、核销等主流程不断;数据写入用 小程序写特征值说明 的口径校验。
开发侧细节:MTU 要先协商再发大数据包,未协商就传大 payload 是「偶发失败」类 bug 的常见根因,可参考 小程序设置 BLE MTU 注意事项。
三、实操步骤:从扫描到降级验收
按状态机顺序走五步,每步配真机用例。
- 查开关与权限:进功能页先查系统蓝牙开关,再申请小程序权限;两步分开提示,别捆成一句文案。
- 扫描与连接:扫描过滤目标设备 MAC/名称规则,连接设 10 秒超时,超时回到扫描态并提示「靠近设备再试」。
- 心跳与重连:连接建立后起心跳,断线自动重连两次、间隔递增,重连期间页面给出明确状态文案。
- 超时降级:重连失败展示扫码等替代入口,降级是常态路径不是异常处理,入口要做得和主路径一样顺眼。
- 用完关闭:业务结束立即关闭适配器释放资源,功耗与系统占用口径见 小程序关闭蓝牙适配器说明。
四、上线前检查表:五个场景逐项过
BLE 是否可上线,用五个异常场景验收,全部平滑才算达标。
| 检查项 | 达标口径 | 常见错误 |
|---|---|---|
| 拒权场景 | 分层引导,二次拒权给图文教程入口 | 只有一句「授权失败」 |
| 关蓝牙场景 | 识别开关状态并引导去系统设置 | 直接报连接失败无出路 |
| 断线重连 | 自动重连两次退避递增,状态可见 | 断线即报错,用户重新进页 |
| 超时降级 | 扫码等替代入口与主路径同等顺眼 | 降级入口藏在角落 |
| 资源释放 | 用完关闭适配器,无后台无效扫描 | 页面退了扫描还在跑 |
五、避坑清单:三个实测踩过的坑
这三个坑都来自真实项目复盘,踩过的成本都写成了用例。
- 别忘关适配器:用完不释放,后台空转既耗电又可能被系统降权,下次连接反而更慢。
- 别未协商 MTU 就发大数据:握手成功不等于通道够宽,先协商 MTU 再分包发送,偶发失败会少一大半。
- 别把蓝牙和定位文案捆死:部分系统要求位置权限才能扫描,但两者用途不同,分开解释才好过审也不吓用户。
- 别页面一进就狂扫:进入页面立刻全速扫描功耗高、还容易失败,先按需扫描、靠近设备再连,体验更稳。
六、常见问题 FAQ
Android 和 iOS 的表现差异大吗?
有差异:授权时序、后台回收策略、扫描结果格式都不同。用例必须分端各跑一遍,重连逻辑要按端适配,不能一套代码 assumes 全通。
能同时连多台设备吗?
可以,但要排队:并发握手容易互相干扰,按队列逐台连接、逐台校验,失败设备单独重试,不阻塞整批。
后台扫描耗电被投诉怎么办?
用完即关适配器、按需扫描、心跳间隔别太密。把「业务结束后 10 秒内释放资源」写成验收用例,耗电投诉基本能消掉。
BLE 连接和 GEO 地理位置配置有关系吗?
没有。GEO 指地理位置配置——门店地址、经纬度、服务类目,决定「附近」检索展示;蓝牙是设备通信能力。个别系统扫描蓝牙时要位置权限,那是权限口径问题,别混进 GEO 话题,也别拿蓝牙信号去推断用户位置做营销。
连接成功率怎么统计才真实?
分子分母写清:首次连接成功数 / 首次尝试总数,重连与降级单独统计。我们的门禁口径是 91% 首连、70% 自动重连、其余扫码兜底,参考时按你的设备与场景重估。
想把蓝牙配件项目做成可验收?
MPForge(DEVDIY 旗下)把门禁、打印等 BLE 项目做成五态状态机交付,拒权、断线、降级全部有真机用例,成功率用数据说话。