如何在bluedroid避免蓝牙两端同时发起AVDTP 的L2CAP连接
时间: 2023-07-30 12:11:46 浏览: 78
Android 蓝牙 A2DP播放AVDTP连接,音乐从audio到A2dp蓝牙侧,流程图。
5星 · 资源好评率100%
在 Bluedroid 中,可以通过设置 AVDT_CFG_CHECK_EVT_MASK 参数来避免蓝牙两端同时发起 AVDTP 的 L2CAP 连接。具体来说,可以设置该参数为 AVDT_CHAN_MEDIA_EVT_MASK,这样在建立媒体通道时,只会有一端发起 L2CAP 连接。这可以通过以下代码实现:
```
#define AVDT_CFG_CHECK_EVT_MASK AVDT_CHAN_MEDIA_EVT_MASK
avdt_cfg_t avdt_cfg = {
.p_ctrl_cb = &avdt_ctrl_cb,
.p_data_cb = &avdt_data_cb,
.num_seps = AVDT_NUM_SEPS,
.local_sep_info = avdt_local_sep_info,
.codec_cfg = avdt_local_codec_info,
.psc_mask = AVDT_PSC_MASK,
.role = AVDT_OPEN_INT,
.sec_mask = BTM_SEC_NONE,
.chk_cfg_evt_mask = AVDT_CFG_CHECK_EVT_MASK
};
```
设置完参数后,Bluedroid 就会自动处理 AVDTP 的 L2CAP 连接,从而避免了两端同时发起连接的问题。
阅读全文