一副 TWS 耳机,为什么既要用经典蓝牙,又要用 BLE
做 TWS 耳机时,经常会同时看到经典蓝牙和 BLE。 手机已经通过蓝牙连接耳机,可以播放音乐、接打电话,为什么配套 App 还要再连接一次 BLE?我刚开始接触时,也没有认真区分这两部分,只知道它们都叫蓝牙。 后来做 App 交互功能多了,我才慢慢理解:在目前常见的 TWS 产品里,它们处理的事情并不一样。经典蓝牙主要负责音乐、通话和媒体控制,BLE 更像一条给 App 使用的数据通道。 一、经典蓝牙主要负责耳机的基本功能 平时用耳机听歌、调节音量和接打电话,主要涉及经典蓝牙中的几个 Profile: Profile 在耳机中的主要作用 A2DP 传输音乐音频 AVRCP 播放、暂停、切歌和音量控制 HFP 来电、接听、挂断等通话控制 通话时的语音通常还会通过 SCO/eSCO 链路传输。 这些功能决定了一副耳机能不能正常听歌和通话。以我目前接触到的应用开发来说,平时主要处理 SDK 上报的 A2DP、AVRCP 和 HFP 事件,再根据当前状态执行对应的产品逻辑。 二、BLE 主要负责耳机与 App 交互 配套 App 需要做的事情和播放音乐不太一样。它传输的通常不是连续音频,而是一些控制命令和状态数据。 我做过的项目里,BLE 主要用于这些功能: 修改 EQ; 切换 ANC 模式; 读取耳机电量; OTA 升级; 查找耳机。 例如用户在 App 上切换 ANC,App 会通过 BLE 把命令发给耳机;耳机执行以后,还可能需要把最新状态返回给 App。读取电量也是类似的过程,只是数据方向和触发时机可能不同。 我接触过 GATT 的 Service、Characteristic、读写和通知,不过实际开发时,大部分数据收发还是通过 SDK 封装好的接口完成。刚开始看这些名词时,我觉得它们比较抽象。结合 TWS 耳机的功能,可以先这样理解: ...