Android BLE 建立连接

问题描述 投票:0回答:1

我正在开发一个 Android BLE 应用程序,用于连接 BLE 外围设备。 BLE外围设备具有很强的能量约束,因此建立连接时应保持较高的连接间隔。

为了增加连接间隔,我正在打电话

requestConnectionPriority(BluetoothGatt.CONNECTION_PRIORITY_LOW_POWER)

在回调

onConnectionStateChange
中,一旦连接建立。然后连接间隔更改为预期的 96 毫秒。但是,我观察到,在建立连接时,在调用回调之前,连接间隔在 300 毫秒内要短得多。

 D  connect() - device: D1:79:4F:0F:F2:D0, auto: false, eattSupport: false
 D  registerApp()
 D  registerApp() - UUID=d02dd9c1-6ca6-4d9f-9037-ec41fc4ea29c
 D  onClientRegistered() - status=0 clientIf=9
 D  isLeEnabled(): ON
 D  onClientConnectionState() - status=0 clientIf=9 device=D1:79:4F:0F:F2:D0
 D  requestConnectionPriority() - params: 2
 D  onConfigureMTU() - Device=D1:79:4F:0F:F2:D0 mtu=247 status=0
 D  onConnectionUpdated() - Device=D1:79:4F:0F:F2:D0 interval=6 latency=0 timeout=500 status=0
 D  onConnectionUpdated() - Device=D1:79:4F:0F:F2:D0 interval=96 latency=2 timeout=500 status=0

我也尝试过在拨打

requestConnectionPriority
后立即拨打
connectGatt
以尽早更改连接间隔。这没有效果。使用 Sony Xperia 1 III 进行测试,代码来自 https://github.com/android/platform-samples/tree/main/samples/connectivity/bluetooth/ble

有没有办法从建立BLE连接的一开始就控制连接间隔?

android connection bluetooth-lowenergy android-bluetooth bluetooth-gatt
1个回答
0
投票

在 Android 上,没有用于更改默认连接间隔参数的 API。如果您可以控制外设代码,则可以根据需要设置外设上的默认连接参数。这样,当Android设备与外围设备建立连接时,连接参数将在连接间隔协商过程中发生变化。正如您所说,您的第二个最佳选择是在

requestConnectionPriority
connectGatt
之后立即调用
onConnectionStateChange
。请查看下面的链接以获取更多信息:-

© www.soinside.com 2019 - 2024. All rights reserved.