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

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

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

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

在我看来是糟糕的BLE堆栈实现,因为当我断开与设备的连接(可能是一些资源被清理),然后重新连接回来我可以重现相同的问题:它读取前10或6的大约10包/秒仅秒(~65个包读取),然后变慢.

我用Galaxy S4和Nexus 4设备测试了它.两者都一样.

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

解决方法:

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

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

希望这有助于有人在数据传输上遇到蓝牙问题!

上一篇:Linux BlueZ dbus通信


下一篇:android中的样式主题和国际化