gpt4 book ai didi

android - 如何在 android 中通过 ble 发送超过 20 字节的数据?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:43:09 27 4
gpt4 key购买 nike

我正在尝试使用简单循环发送超过 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);
}

最佳答案

通过 BLE 发送超过 20 个字节的数据很容易实现,方法是将您的数据拆分为 20 个字节的数据包,并在发送每个数据包之间实现短暂的延迟(即使用 sleep())。

这是我正在处理的一个项目的一小段代码,它以 byte[] 的形式获取数据并将其拆分为相同的数组,( byte[ ][] ),以20字节的 block ,然后将其发送到另一种方法,该方法逐个传输每个数据包。

    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);

这里有两个关于如何实现这一点的很好的解释:

(Stackoverflow) Android: Sending data >20 bytes by BLE

(Nordic Semi) Dealing Large Data Packets Through BLE

关于android - 如何在 android 中通过 ble 发送超过 20 字节的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30130162/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com