Android 上同时支持 BLE 和 HFP/A2DP 的智能手机芯片组的差异

Posted

技术标签:

【中文标题】Android 上同时支持 BLE 和 HFP/A2DP 的智能手机芯片组的差异【英文标题】:Differences in smartphone chipsets for simultaneous BLE and HFP/A2DP on Android 【发布时间】:2021-07-16 13:26:14 【问题描述】:

我在使用 android 智能手机芯片组进行语音通话时遇到 BLE 连接丢失的问题。

    我正在通过蓝牙将 Android 手机连接到汽车音响。 我还有一个单独的 BLE 外围设备连接到同一部智能手机。 我从智能手机拨打电话,通过汽车音响路由音频。

我已经在两部不同的 Android 手机上试过了。一个配备 Qualcomm MSM8953 Snapdragon 625,另一个配备 Mediatek MT6763 芯片组。

Qualcomm 上一切正常!手机能够通过汽车音响进行呼叫路由音频,同时接收来自 BLE 外围设备的 GATT 通知。

联发科技上,我一开始通话,BLE外设就断开了,状态码为0x08 GATT_CONN_TIMEOUT,而语音通话正常。在我结束语音通话的那一刻,BLE 连接可以重新建立,并且可以再次收到 GATT 通知。

智能手机制造商已确认这是联发科芯片组的限制。

我想知道为什么有些芯片组支持而有些不支持。我们需要为客户再订购几部手机,并且需要确保芯片组支持通过蓝牙和 BLE GATT 通知同时进行语音通话。我希望有人能指出我为什么会发生这种情况,以及我应该在芯片组中寻找什么来支持这一点。

【问题讨论】:

你说你有"在A2DP流传输期间丢失BLE连接",但后来你似乎说有语音通话时出现问题。语音呼叫不会使用 HFP/HSP 配置文件(通过 SCO)吗? A2DP 通常用于媒体播放。 谢谢,你说得很好。我在 Android 日志中看到了有关 A2DP 流的信息,但可能与电话无关。我已经编辑了问题。 【参考方案1】:

HFP 音频占用带宽。音频连接通过称为同步连接导向 (SCO) 的逻辑链路进行路由。此连接要求无线电控制器为 Tx/Rx 安排定期间隔。 HFP 配置文件中此连接的“故障安全”设置规定每 6 个时隙中的 2 个连续时隙专用于此链接。 (参见 HFP 规范中的“D0”配置文件)。这使得无线电很难安排其他传输,例如 LE PHY 上的 GATT 数据包。

我猜测有问题的芯片组正在使用这些故障保护参数,这导致您的 GATT 链接超时。

【讨论】:

以上是关于Android 上同时支持 BLE 和 HFP/A2DP 的智能手机芯片组的差异的主要内容,如果未能解决你的问题,请参考以下文章

Android低功耗蓝牙(蓝牙4.0)——BLE开发(上)

BLE 5 外围设备未在支持 BLE 5 的 Android 手机和 iPhone 上得到扫描

原创Android 5.0 BLE低功耗蓝牙从设备应用

是否可以使用支持 BLE 的 Android/iPhone 作为 BLE 信标?

Android ble (蓝牙低功耗) 中的坑和技巧

是否可以同时在安卓手机中进行蓝牙 SPP 连接和 BLE GATT 连接?