Android BLE连接速度问题

Android BLE connection speed issue

我的 android 应用程序使用

BluetoothAdapter.startLeScan()

在通过按下按钮手动要求其停止之前扫描结果。

这种态度会影响ble连接时间吗?

我觉得是在绑定蓝牙服务时阻塞扫描,建立连接后解除阻塞,无需编写任何代码。这是正确的吗?

连接时间不时变化。平均需要 1~2 秒,但有时需要 5 到 6 秒甚至更多。为什么会这样?

Will this type of attitude affect the time of ble connection time?

有时可能。设备进入连接状态后,通过发送连接请求发起连接过程。如果您在设备进入连接状态之前手动停止扫描,可能会中断后续的连接。

I think the scanning is blocked when the bluetooth service is binded, and unblocked after connection establishment without any code to write. Is this right?

是的,是的。

The connection time varies from time to time. It takes about 1~2 sec average, but sometimes, it takes about 5 to 6 seconds or even more. Why should this happen?

原因有很多,你可以先考虑一个主要原因。那是BLE设备的特殊工作模式。它们不是一直活跃,而是周期性地活跃。例如,它每 10 秒激活 100 毫秒,并在其他 9.9 秒内休眠。如果在BLE设备刚刚进入休眠状态时开始扫描,则需要9.9s以上。

其次,问题可能是由于您的 Android 设备造成的。检查它发送连接请求时是否有任何其他任务或事件可能会中断连接过程。

第三,有没有干扰?也许是 WIFI 或 USB 3.0。