我正在开发嵌入式音频产品。它被配置为 A2DP 接收器(经典蓝牙)。我们还使用 BLE GATT 服务作为我们配套应用程序的控制方法(带有网络蓝牙和本机应用程序的浏览器内)。
我们使用 NXP 的 iMXRT 系列 MCU,以及用于 RF 通信的 IW416 蓝牙/WiFi SOC。这种控制和音频的组合正在成功运行并通过互操作性测试(iOS、Windows、Linux、macOS 等...)。然而,Android 却引发了问题。我相信是由于以下行为:
以前有人遇到过这个问题吗?是否有解决此问题的标准做法?感觉我们有很多不幸和不兼容的约束,但我不认为这是一个太多独特的用例。我理解这种设计在蓝牙标准下应该是允许的(BLE 和 Classic 在同一目标设备上共存)。
我应该指出,使 BLE 广告匿名有助于允许 Android 音频连接...除了这会阻止用户使用我们的 webBLuetooth 控制机制识别设备(即连接上显示的唯一内容是 LE mac)。
备注:
解决方案是随机化 BLE mac。在 Android 设置菜单中,设备现在显示为两个不同的连接,一个 A2DP 接收器和一个 BLE 控制。