我试图使用简单的循环发送超过33个字节,是否有人知道如何通过android ble发送超过20个字节的数据。
if(!mConnected) return;
for (int i = 0; i<str.length;i++) {
if(str[i] == str[str.length -1]){
val = str[i]+"\n";
}else {
val = str[i] + "_";
}
System.out.println(val);
mBluetoothLeService.WriteValue(val);
}
通过将您的数据分成20个字节的数据包,并sleep()
在发送每个数据包之间实现短暂的延迟(即使用),可以轻松实现通过BLE发送20多个字节。
这是我正在处理的项目的一小段代码,该代码以20字节的块的形式将数据以的形式byte[]
分成相同的数组(byte[][]
),然后将其发送到另一种传输每个数据包的方法中逐个。
int chunksize = 20;
byte[][] packets = new byte[packetsToSend][chunksize];
int packetsToSend = (int) Math.ceil( byteCount / chunksize);
for(int i = 0; i < packets.length; i++) {
packets[i] = Arrays.copyOfRange(source,start, start + chunksize);
start += chunksize;
}
sendSplitPackets(packets);
这是如何实现此目标的另外两个很好的解释:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句