以编程方式检测BLE连接参数的变化

时间:2017-11-29 18:45:53

标签: android bluetooth-lowenergy android-7.0-nougat

我想用某种方式在Android BLE中以编程方式读取连接参数。

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

  

CONNECTION_PRIORITY_BALANCED   连接参数更新 - 使用Bluetooth SIG推荐的连接参数。

     

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

     

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

已详细讨论了herehere

由于这些都没有给我我想要的连接间隔,所以尝试从我的外围设备执行连接更新。幸运的是,这似乎有效。发送连接更新后,我可以在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设备选择的间隔,只要它在1000毫秒到2000毫秒之间。虽然很容易看到日志中发生了这种变化,但我还没有找到一种以编程方式读取间隔值的方法。我想确保发生这种更新,以免我在外围设备上浪费电池寿命。

1 个答案:

答案 0 :(得分:1)

没有。但是,如果您可以从外围设备侧检测到更新,则可以使用新参数向中央发送通知。