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

时间:2014-06-05 22:05:20

标签: java android bluetooth bluetooth-lowenergy gatt

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

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

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

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

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

有关如何改进它的任何建议吗?

1 个答案:

答案 0 :(得分:4)

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

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

希望这可以帮助有蓝牙数据传输麻烦的人!