[求助] 安卓蓝牙BLE接收大量数据的问题

flashtt   2018-9-14 18:35 楼主
最近在做一个可穿戴设备,下位机用蓝牙模块,上位机用安卓,下位机需要以5kB/s的速率传输,上位机总是接收几包就连接断了,用抓包器看了一下,下位机传输速度很多,每个连接间隔45ms,但是需要传送几包,包与包之间大概只有600us,安卓用回调函数接收,感觉是因为来不及导致的连接中断。
  1. @Override
  2.         public void onCharacteristicChanged(BluetoothGatt gatt,BluetoothGattCharacteristic characteristic) {
  3.             byte[] value = characteristic.getValue();
  4.             Log.i(TAG, "CharacteristicChanged: " + value.length);
  5.         }

这个回调函数每一包就回调一次,然后只能取一包,想请问大家有做过安卓蓝牙数据采集是怎么实现的,网上有很多资料但是完全不适用于数据量大的场景,因为下位机是透传模块,没法改动它的代码,也不是蓝牙5.0,每一包就只能发20字节,不知道怎么处理

回复评论 (2)

你的意思是蓝牙模块传输太快了,导致安卓上的APP数据接收不上是吗?
透传模式跟串口模式是差不多的,你可以设定app接收到一个包后蓝牙模块再传输一个包,虽然这样速率会下降,但是会可靠。
点赞  2018-9-15 23:04
可是我就是需要高速率,现在市面上买的模块的透传速度勉强能满足我的需要,安卓端接收就已经出现了问题,我觉得是我不会安卓的原因,不知道商用的可穿戴蓝牙设备是怎么解决高速率传输的问题,难道都是用的传统蓝牙?
点赞  2018-9-17 14:49
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复