编程检测到BLE连接参数的更改



我想在Android ble中以编程方式读取连接参数。

Android的BluetoothGatt类(从API 21开始)提供了以下三种模式来设置连接参数。

connection_priority_balenced 连接参数更新 - 使用蓝牙信号推荐的连接参数。

connection_priority_high 连接参数更新 - 请求高优先级,低延迟连接。

connection_priority_low_power 连接参数更新 - 请求低功率,降低数据速率连接参数。

这些已在此处详细讨论。

由于这些都没有给我我想要的连接间隔,因此尝试从外围的侧面执行连接更新。幸运的是,这似乎有效。发送连接更新后,我可以在logcat中看到:

D/BluetoothGattServer: onConnectionUpdated() - Device=XX:XX:XX:XX:XX:XX interval=1596 latency=0 timeout=512 status=0
D/BluetoothGatt: onConnectionUpdated() - Device=XX:XX:XX:XX:XX:XX interval=1596 latency=0 timeout=512 status=0

我不在乎Android设备选择的间隔,只要它在1000ms至2000ms之间。虽然很容易看到日志中发生这种变化,但我还没有找到一种以编程方式读取间隔值的方法。我想确保发生此更新,以免在外围浪费电池寿命。

no。但是,如果您可以从外围侧检测更新,则可以使用新参数发送通知。

最新更新