BLE最多允许你传输20个字节。
如果要发送20个以上的字节,则应定义数组byte[]以包含所需的数据包数量。
如果你要发送少于160个字符(160个字节),以下示例可以很好地工作。
p / s:根据需要编辑以下内容。不要完全跟随我。
实际上,当我们使用BLE时,移动端和固件端需要设置密钥(例如0x03...)来定义双方之间的连接门。
这个想法是:
当我们继续传输数据包时,不是最后一个。门是byte[1] = 0x01。
如果我们发送最后一个,则门为byte[1] = 0x00。
数据构造(20字节):
1– Byte 1定义Gate ID:例如。消息门ID byte[0] = 0x03。
2- Byte 2定义recognization:是最后一个数据包0x00还是继续发送数据包0x01。
3- Byte 3(在消除Byte 1&之后,应为18个字节Byte 2)-在此处附加消息内容。
在阅读下面的代码之前,请先了解我的逻辑。
下面是发送带有许多数据包的消息的示例,每个数据包是一个大小为20字节的数组。
private void sendMessage(BluetoothGattCharacteristic characteristic, String CHARACTERS){
byte[] initial_packet = new byte[3];
/**
* Indicate byte
*/
initial_packet[0] = BLE.INITIAL_MESSAGE_PACKET;
if (Long.valueOf(
String.valueOf(CHARACTERS.length() + initial_packet.length))
> BLE.DEFAULT_BYTES_VIA_BLE) {
sendingContinuePacket(characteristic, initial_packet, CHARACTERS);
} else {
sendingLastPacket(characteristic, initial_packet, CHARACTERS);
}
}
private void sendingContinuePacket(BluetoothGattCharacteristic characteristic,