<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>经典蓝牙 on 栈外随记</title>
    <link>https://btio.cn/tags/%E7%BB%8F%E5%85%B8%E8%93%9D%E7%89%99/</link>
    <description>Recent content in 经典蓝牙 on 栈外随记</description>
    <image>
      <title>栈外随记</title>
      <url>https://btio.cn/images/logo-arong.svg</url>
      <link>https://btio.cn/images/logo-arong.svg</link>
    </image>
    <generator>Hugo</generator>
    <language>zh-CN</language><lastBuildDate>Tue, 04 Aug 2026 17:48:36 +0800</lastBuildDate>
    <atom:link href="https://btio.cn/tags/%E7%BB%8F%E5%85%B8%E8%93%9D%E7%89%99/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>一副 TWS 耳机，为什么既要用经典蓝牙，又要用 BLE</title>
      <link>https://btio.cn/posts/2026/08/04/%E4%B8%80%E5%89%AF-tws-%E8%80%B3%E6%9C%BA%E4%B8%BA%E4%BB%80%E4%B9%88%E6%97%A2%E8%A6%81%E7%94%A8%E7%BB%8F%E5%85%B8%E8%93%9D%E7%89%99%E5%8F%88%E8%A6%81%E7%94%A8-ble/</link>
      <pubDate>Tue, 04 Aug 2026 17:48:36 +0800</pubDate>
      <guid>https://btio.cn/posts/2026/08/04/%E4%B8%80%E5%89%AF-tws-%E8%80%B3%E6%9C%BA%E4%B8%BA%E4%BB%80%E4%B9%88%E6%97%A2%E8%A6%81%E7%94%A8%E7%BB%8F%E5%85%B8%E8%93%9D%E7%89%99%E5%8F%88%E8%A6%81%E7%94%A8-ble/</guid>
      <description>&lt;p&gt;做 TWS 耳机时，经常会同时看到经典蓝牙和 BLE。&lt;/p&gt;
&lt;p&gt;手机已经通过蓝牙连接耳机，可以播放音乐、接打电话，为什么配套 App 还要再连接一次 BLE？我刚开始接触时，也没有认真区分这两部分，只知道它们都叫蓝牙。&lt;/p&gt;
&lt;p&gt;后来做 App 交互功能多了，我才慢慢理解：在目前常见的 TWS 产品里，它们处理的事情并不一样。经典蓝牙主要负责音乐、通话和媒体控制，BLE 更像一条给 App 使用的数据通道。&lt;/p&gt;
&lt;h2 id=&#34;section-1&#34;&gt;一、经典蓝牙主要负责耳机的基本功能&lt;/h2&gt;
&lt;p&gt;平时用耳机听歌、调节音量和接打电话，主要涉及经典蓝牙中的几个 Profile：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Profile&lt;/th&gt;
					&lt;th&gt;在耳机中的主要作用&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;A2DP&lt;/td&gt;
					&lt;td&gt;传输音乐音频&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;AVRCP&lt;/td&gt;
					&lt;td&gt;播放、暂停、切歌和音量控制&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;HFP&lt;/td&gt;
					&lt;td&gt;来电、接听、挂断等通话控制&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;通话时的语音通常还会通过 SCO/eSCO 链路传输。&lt;/p&gt;
&lt;p&gt;这些功能决定了一副耳机能不能正常听歌和通话。以我目前接触到的应用开发来说，平时主要处理 SDK 上报的 A2DP、AVRCP 和 HFP 事件，再根据当前状态执行对应的产品逻辑。&lt;/p&gt;
&lt;h2 id=&#34;section-2&#34;&gt;二、BLE 主要负责耳机与 App 交互&lt;/h2&gt;
&lt;p&gt;配套 App 需要做的事情和播放音乐不太一样。它传输的通常不是连续音频，而是一些控制命令和状态数据。&lt;/p&gt;
&lt;p&gt;我做过的项目里，BLE 主要用于这些功能：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;修改 EQ；&lt;/li&gt;
&lt;li&gt;切换 ANC 模式；&lt;/li&gt;
&lt;li&gt;读取耳机电量；&lt;/li&gt;
&lt;li&gt;OTA 升级；&lt;/li&gt;
&lt;li&gt;查找耳机。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如用户在 App 上切换 ANC，App 会通过 BLE 把命令发给耳机；耳机执行以后，还可能需要把最新状态返回给 App。读取电量也是类似的过程，只是数据方向和触发时机可能不同。&lt;/p&gt;
&lt;p&gt;我接触过 GATT 的 Service、Characteristic、读写和通知，不过实际开发时，大部分数据收发还是通过 SDK 封装好的接口完成。刚开始看这些名词时，我觉得它们比较抽象。结合 TWS 耳机的功能，可以先这样理解：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
