蓝牙 BLE 设备 App 开发:从协议文档到上架的完整流程
BLE 设备 App 的完整流程是五步:协议文档评审、GATT 服务与特征梳理、真机联调、OTA 升级、上架合规。最常被低估的是真机联调,最常出事的是固件版本碎片化。
蓝牙 BLE 设备 App 开发,从拿到协议文档到最终上架,完整的流程是五步:协议文档评审 → GATT 服务与特征梳理 → 真机联调 → OTA 升级 → 上架合规。其中真机联调占用的工作量最大、坑最集中:MTU 分包、后台断连、固件版本碎片化、iOS 与 Android 的行为差异,都在这一步暴露。
一、流程总览
- 协议文档评审:确认通信制式、协议完整度、固件版本范围;
- GATT 服务与特征梳理:把设备能力整理成 App 端与设备侧的共同契约;
- 真机联调:逐机型、逐固件版本跑通扫描、连接、读写、订阅;
- OTA 升级:固件分包传输、校验、断点与回滚;
- 上架合规:蓝牙权限文案、隐私政策、常规上架项。
二、第一步:协议文档评审
- 先确认通信制式:BLE 还是经典蓝牙(SPP)——两者的 API、能力与审核要求完全不同,先把这一项钉死;
- GATT 谁定义:设备厂给了协议文档,还是只有固件代码?后者要预留抓包还原协议的时间;
- 分包与重组:单条业务数据超过 MTU 怎么拆、按什么字节序组装,两端必须一致;
- 加密与认证:配对方式、绑定的密钥管理,决定 App 端配对流程怎么写;
- 固件版本范围:文档对应哪个固件版本,现场存量设备分布在哪些版本。
三、第二步:GATT 服务与特征梳理
BLE 的设备能力以 GATT 服务(Service)和特征(Characteristic)组织,每个服务与特征由 UUID 标识。一个可以核对的细节:标准 16 位 UUID 映射到 Bluetooth SIG 的 128 位基址 0000xxxx-0000-1000-8000-00805F9B34FB,例如电池服务的 UUID 是 0x180F,其中的电池电量特征是 0x2A19;厂商自定义功能多走 128 位自定义 UUID。
每个特征带属性(读、写、无响应写、通知、指示)。客户端要订阅”通知”,需要向该特征下的 CCCD(Client Characteristic Configuration Descriptor,UUID 0x2902)写入开启标志——调试”收不到数据”时,这里是第一个要查的地方。
评审产出物是一张服务-特征-属性表:UUID、属性、字节序、分包规则、对应的业务含义,作为 App 端与设备侧的共同契约。
四、第三步:真机联调与常见坑
- MTU:链路默认 MTU 是 23 字节,GATT 写操作实际可用 20 字节;App 要主动协商更大的 MTU(Android 用 requestMtu,iOS 系统自动协商),分包逻辑必须兼容协商失败、回退默认值的情况;
- 后台断连:iOS 进入后台后 BLE 连接事件窗口受限,连接可能被降频甚至断开。连接状态机要设计自动重连,重连后的状态恢复要幂等;
- 固件版本碎片化:同一型号不同批次的固件行为可能不一致——服务没变,特征行为变了。要建固件版本矩阵,逐版本回归,只测最新固件一定会在现场翻车;
- iOS 与 Android 差异:扫描上 iOS 会返回缓存的广播数据,Android 需要运行时申请定位 / 蓝牙权限;Android 返回的 MAC 地址可能动态变化,不能当作设备唯一标识;
- 联调记录:每次联调记录固件版本、机型、系统版本与现象,沉淀成可追溯的文档,后面交接和排障都靠它。
五、第四步:OTA 升级
- 升级期间断开业务通道,只保留升级服务;
- 固件分包传输,每包带序号与校验,失败重传;
- 考虑用户中途离开 App 的场景:断点续传还是重新开始,要明确;
- 失败回滚方案:新固件起不来时,boot 区怎么兜底;
- App 端校验固件包与设备型号、当前版本的匹配关系,避免刷错包。
六、第五步:上架合规
- iOS:权限文案
NSBluetoothAlwaysUsageDescription要写清具体用途(”用于连接××设备并同步数据”),文案空泛或缺失会被拒; - Android:Android 12 及以上用
BLUETOOTH_SCAN/BLUETOOTH_CONNECT运行时权限;更早的版本扫描 BLE 要走定位权限,不用定位结果时可以加neverForLocation标志; - 隐私政策:覆盖设备数据的采集类型与用途;
- 备案、隐私清单等常规上架项同样适用,可参考我们的 App 上架清单笔记。
七、我们做过的同类项目
我们交付过健康监测设备、手持终端、传感器类硬件的配套 App:从协议还原、GATT 联调到 OTA 与上架的完整链路都由自己的团队走完。设备侧的分工取舍与甲方要核验的事项,可看笔记 找公司做蓝牙/硬件连接 App,先问这 8 个问题。
如果你正在评估 BLE 类 App 的开发或接手一个半截项目,建议先用第二节的清单对一遍协议文档的完整度——文档缺什么,后面每一步都会加倍还回来。
了解更多:软硬件结合与物联网开发。哪些工作在我们范围内、哪些明确不含,也可以先看我们的需求清单与边界说明。