使用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设备进行了测试。两者都一样。
有关如何改进它的任何建议吗?
答案 0 :(得分:4)
我希望自2014年6月5日起,您可以找到问题的解决方案。 我也有同样的问题。前2~3秒,我收到~100ms的数据。之后,我每个〜2000ms收到数据。我测试了4.3及以上的设备。
我找到了Lollipop版本以及BluetoothGatt上的requestConnectionPriority。 我找不到4. *版本的解决方案。如果有人有建议。
希望这可以帮助有蓝牙数据传输麻烦的人!