Android Bluedroid:如何发送LL_连接\u更新\u请求

Android Bluedroid:如何发送LL_连接\u更新\u请求,android,bluetooth,android-source,bluetooth-lowenergy,Android,Bluetooth,Android Source,Bluetooth Lowenergy,我想用一些特定的连接参数强制向从机发送LL_CONNECTION_UPDATE_REQ。我如何在Bluedroid中实现这一点?从Bluedroid可以吗 目标:AOSP v5.1+通过调用函数btsnd_hcic_ble_upd_ll_conn_params()[在l2c_ble.c中] 函数在hciblecmds.c中定义 如果从机和主机都支持蓝牙规范4.2版中的9.3.9中定义的连接参数更新过程,并在LL\u FEATURE\u REQ(2.4.2.9)和LL\u FEATURE\u RS

我想用一些特定的连接参数强制向从机发送LL_CONNECTION_UPDATE_REQ。我如何在Bluedroid中实现这一点?从Bluedroid可以吗


目标:AOSP v5.1+

通过调用函数
btsnd_hcic_ble_upd_ll_conn_params()
[在l2c_ble.c中] 函数在hciblecmds.c中定义

如果从机和主机都支持
蓝牙规范4.2版
中的
9.3.9
中定义的
连接参数更新过程,并在
LL\u FEATURE\u REQ(2.4.2.9)
LL\u FEATURE\u RSP(2.4.2.10)
中声明,则链路层发送
LL\u Connection\u PARAM\u REQ(2.4.2.16)

如果任一主机不支持此功能,LL将发送
LL\u CONNECTION\u UPDATE\u REQ 2.4.2.1

4.2版蓝牙规范中的
9.3.9.2条件

启动连接参数更新程序的中央控制器应使用 [Vol.6]第B部分章节中定义的链路层连接更新程序 5.1.1如果中央或 外围设备不支持连接参数请求链路层 控制程序

如果中央和外围设备都支持连接参数请求 链路层控制程序,然后由中央或外围设备启动 连接参数更新程序应使用连接参数 [第6卷]第B部分第5.1.7节中定义的请求链路层控制程序 具有所需的连接参数

尽管我要在这里添加
btsnd_hcic_ble_upd_ll_conn_params()
只需要最小和最大连接间隔,并将它们用作提示

根据我的经验,当传递一个值范围时,LL会选择该范围内的任何值

我只做了有限的测试,因此我不确定LL是否总是从提供的范围中进行选择,或者在某些情况下,它是否可以从该范围之外进行选择,例如,如果已连接的从属设备的CI超出该范围

5.1.1连接更新程序
,LL将始终从主机提供的范围中选择连接间隔。
感谢@eml指出这一点。

控制器不得选择超出所提供范围的连接间隔。@eml规范中对此有任何参考吗?我有一个预感,这是正确的,但我在规范中找不到它。不过我看得不太仔细。在规范中:“主机的链接层应根据主机给定的间隔范围(connInterval\u min和connInterval\u max)确定connInterval。链接层应向主机指示选定的间隔值。”按照“应”的正常定义,这意味着“必须”。