如何提高Android蓝牙低功耗GATT吞吐量?

Fel*_*llo 5 java android bluetooth bluetooth-lowenergy gatt

使用Android BLE API连续读取多个GATT时,出现性能问题。

我每秒可以读取大约10个数据包,大约需要5到6秒钟。在我读取〜65的数据包后,吞吐量每1.5秒减少到大约1个数据包。

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

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

我在Galaxy S4和Nexus 4设备上进行了测试。两者相同。

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

小智 4

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

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

希望这可以帮助那些遇到蓝牙数据传输问题的人!