Android BLE 中心设备与外设进行大数据的读写

本文探讨了在Android蓝牙低功耗(BLE)环境中,如何处理大数据的读写操作。通过将大数据拆分并利用BLE的特性进行传输,即使在连接中断后也能恢复并继续发送。文中提到使用序号标记每个数据段,并在外设端进行合并。通过中心设备的onCharacteristicWrite()回调确保每次写操作完成后再进行下一次,保证了操作的顺序性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    众所周知,蓝牙低功耗(BLE)是为省电而设计,其省电原理是因为通过特征值进行读写的时候,自定义的特征值一次最大传输的数据量为20字节;由于一次传输的数据量很小,所以,非常省电;

   那问题来了,如何用BLE来进行较大数据的读写呢,原理很简单,只需要将大数据进行拆分再合并既可;

   开发过BLE的人都会有这种感觉:蓝牙连接太不稳定了,拆分了再合并靠谱吗,会不会中途断开,发送的顺序会不会在对方收到后会不会乱掉,等等诸多问题。

   结论:现在测试过后发现:蓝牙并没有想象中的那么不堪,在测试中经过多次测试,发现蓝牙协议很靠谱,在发送一段数据过程中,蓝牙如果断开,其会立即重新连接,再上次断开的地方继续发送,很是靠谱;

   另外,关于拆分和合并,不同人有不同的方法,我的方法很简单,就是将20字节的数,20字节包含序号位+内容;合并的时候采用了map来存储序号和内容,序号作为键值;

   PS:如何实现大数据的读写呢?

   中心设

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值