Bluetooth 蓝牙双LE和经典模式标志

Bluetooth 蓝牙双LE和经典模式标志,bluetooth,bluetooth-lowenergy,Bluetooth,Bluetooth Lowenergy,在BLE的广告部分,蓝牙SIG定义“标志” 有这些,还有一些 BR/EDR不受支持 可同时对同一设备进行LE和BR/EDR(控制器) 可同时对同一设备进行LE和BR/EDR(主机) 我对CSR芯片组设计存在问题,该芯片组不支持GATT over BR/EDR 苹果工作得很好,因为它总是连接到LE ..但如果音频已经启动,android设备会持续尝试通过BR/EDR连接GATT;因此,由于CSR无法为GATT处理BR/EDR运输,因此失败 我认为这些标志是问题的核心 在CSR的演示代码中,他们

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

有这些,还有一些

  • BR/EDR不受支持
  • 可同时对同一设备进行LE和BR/EDR(控制器)
  • 可同时对同一设备进行LE和BR/EDR(主机)
我对CSR芯片组设计存在问题,该芯片组不支持GATT over BR/EDR

苹果工作得很好,因为它总是连接到LE

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

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

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

问题是另外两个标志。控制器/主机与其他LE术语的关系如何。例如,中央/外围设备或更高版本的主/从设备


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

您可以对所有LE操作使用静态随机地址。这样,Android设备就认为它与通过Bluetooth Classic聊天时的设备不同,因为它使用的是公共BD_ADDR

或者,
connectGatt
的一个变体采用一个
transport
参数,您可以将该参数设置为
transport\u 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

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

谢谢,我想了解“主机”和“控制器”部分在此上下文中的含义。通常情况下,外部芯片上有一个蓝牙控制器,然后是一台主机(插入芯片)。我认为,第一个标志(控制器)是蓝牙芯片本身是否同时支持这两个标志,第二个标志是主机上的软件是否支持同时处理这两个标志。BR/EDR Not SUPPORED并没有真正的帮助。一旦安卓注意到还有第二个频道,它似乎就会忽略它。