在 iOS 开发者的语境里,大家把 BT 和 BLE 当成两种不同的蓝牙技术在谈——它们来自同一个 Bluetooth 规范,但面向的场景、协议栈乃至 Apple 提供的 API 都截然不同。
缩写 | 全称 / 技术名称 | 规范层叫法 | iOS 支持现状 | 典型用途 |
---|---|---|---|---|
BT | Bluetooth Classic(经典蓝牙) 又叫 BR/EDR(Basic Rate / Enhanced Data Rate) | “Bluetooth BR/EDR” | iOS 仅对少数系统级 Profile(音频、电话、HID)开放;应用若要主动通信,通常要走 ExternalAccessory 或 MFi 方案 | 连续音频(AirPods)、车载电话、HID 键盘/手柄等 |
BLE | Bluetooth Low Energy(低功耗蓝牙) 早期市场名 Bluetooth Smart | “Bluetooth LE” | iOS 从 iOS 5 起通过 CoreBluetooth 完整开放,允许 App 扫描、连接、收发数据 | 传感器、智能穿戴、支付 Beacon、低功耗数据同步等 |
1. 技术差异一览
维度 | BT(Classic) | BLE |
---|---|---|
频道数 | 79(1 MHz) | 40(2 MHz,含 3 条主广告信道) |
连接建立 | 100 ms-级,需功耗持续维持 | 3 ms-级握手,空闲时几乎不耗电 |
典型吞吐 | 1–3 Mb/s,适合连续流 | 0.1–1 Mb/s,适合突发包 |
能耗模型 | “始终在线” | “睡眠→唤醒” |
Apple 文档也明确区分 “Bluetooth Classic” 与 “Bluetooth Low Energy (BLE)” 并分别说明其安全模型与开发接口。(苹果支持)
2. 在 iOS 里的开发接口
需求 | 推荐框架 / 方法 |
---|---|
与 BLE 设备(传感器、灯控、手环…)通讯 | CoreBluetooth — 完全支持扫描、广播、GATT、L2CAP 等。(Apple Developer) |
与 BT Classic 设备自定义通讯 | 只有在外设通过 MFi 认证并使用 ExternalAccessory Framework 暴露串口 (EAAccessory / EASession) 时可由第三方 App 访问;否则仅系统级 Profile 可用(例如音频经 AVFoundation 、车载经 CallKit )。 |
3. 选型建议
- 要做 App-to-Device 数据同步、控制指令、周期测量 → 用 BLE + CoreBluetooth:功耗低、接口开放且无 MFi 门槛。
- 要做连续音频或现成车载控制 → 系统已经通过 BT Classic 处理,不需也不能自己操作协议。
- 若 Legacy 设备只支持 BT Classic 且要自定义数据通道 → 必须采用 MFi/ExternalAccessory,且硬件需支持 Apple SPP(iAP2)或类串口 Profile。
简而言之:
- BT = 经典蓝牙(BR/EDR),在 iOS 上主要被系统用来做音频等高带宽、持续连接场景;
- BLE = 低功耗蓝牙,专为间歇数据、传感器与 IoT 设计,由 CoreBluetooth 向第三方完全开放。
区分清二者,有助于你在项目里选择合适的硬件模块、协议栈与 iOS API。