蓝牙双LE和经典模式标志

时间:2018-01-14 22:43:57

标签: bluetooth bluetooth-lowenergy

在BLE的广告部分,蓝牙SIG定义“标志”

有这些以及更多。

  • 不支持BR / EDR
  • 同时LE和BR / EDR到同一设备能力(控制器)
  • 同时LE和BR / EDR到同一设备能力(主机)

我遇到的问题是CSR芯片组设计不支持GATT over BR / EDR。

Apple效果很好,因为它始终与LE连接。

..但是如果音频已经启动,Android设备会持续尝试通过BR / EDR连接GATT;因此失败,因为CSR无法处理GATT的BR / EDR传输。

我认为这些标志是问题的核心。

在CSR的演示代码中,他们不会设置上述标志中的“任何”标志。通过设置“不支持”标志,我在某些手机上的问题取得了有限的成功。

问题是另外两个标志。 Controller / Host如何与其他LE术语相关。例如Central / Peripheral或更高版本的Master / Slave。

我不知道为我的用例设置了什么标志。有什么建议欢迎吗?

1 个答案:

答案 0 :(得分:1)

您可以对所有LE操作使用静态随机地址。这样,Android设备认为它与使用公共BD_ADDR时通过蓝牙经典通话的设备不同。

或者,connectGatt的一个变体采用transport参数,您可以将其设置为TRANSPORT_LE以强制通过BLE进行通信。

如果您的设备同时支持BLE和BR / EDR,您应该设置这些标志:

BR/EDR Not Supported=0
Simultaneous LE and BR/EDR to Same Device Capable (Controller)=1
Simultaneous LE and BR/EDR to Same Device Capable (Host)=1

如果标志数据完全丢失,则与所有字段均为零相同。