5

使用 Android BLE API 进行多次 GATT 连续读取时,我遇到了性能问题。

我可以在大约 5 或 6 秒内每秒读取大约 10 个数据包。在我读取 ~65 的数据包后,吞吐量降低到每 1.5 秒大约 1 个数据包。

我做了几次测试,内部 BLE 似乎变得非常慢。在这种情况下,从 Java GATT 读取调用到外围设备大约需要 750 毫秒(外围设备中没有瓶颈),而返回 Java API 回调大约需要 750 毫秒。

在我看来,BLE 堆栈实现很差,因为当我从设备断开连接(可能清理了一些资源)然后重新连接时,我可以重现同样的问题:前 5 个或 6 个数据包读取大约 10 个数据包/秒秒(约 65 个数据包读取),然后它变得很慢。

我用 Galaxy S4 和 Nexus 4 设备对其进行了测试。两者都一样。

关于如何改进它的任何建议?

4

1 回答 1

4

我希望自 2014 年 6 月 5 日以来,您能找到解决问题的方法。我也有同样的问题。前 2 ~ 3 秒,我在 ~100 毫秒内收到数据。之后,我每 2000 毫秒接收一次数据。我在 4.3 及以上的设备上测试。

我在 BluetoothGatt 上找到了 Lollipop 版本及以上的requestConnectionPriority 。我还没有找到 4.* 版本的解决方案。如果有人有建议。

希望这对蓝牙数据传输有问题的人有所帮助!

于 2015-11-09T14:02:42.083 回答