gpt4 book ai didi

java - 将多个 uint8 和 uint16 组合成 1 字节数组

转载 作者:行者123 更新时间:2023-11-30 02:42:43 27 4
gpt4 key购买 nike

我是 java 编程的新手,我正在尝试为 Android (4.3+) 开发蓝牙低功耗 (4.0) 健身设备。我从不同的硬件制造商那里购买了一堆不同的设备进行测试,其中一个向设备发送值的说明如下:

Characteristic Fitness Goals
size: 8 bytes
D0 D1 D2 D3 D4 D5 D6 D7

D0: number of days in month, uint8_t
D1 D2: distance walked , uint16_t
D3 D4: distance ran, uint16_t
D5 D6: steps taken, uint16_t
D7: number of users, uint8_t

问题是:

我有 5 个 int 值,我需要将它们放入将写入设备的字节数组中。以这些值为例:

16 (# days in month)
450 (distance walked)
334 (distance ran)
800 (steps taken)
4 (number of users)

我不确定如何获取这些不同的 uint8_t 和 uint16_t 值并将它们放入一个字节数组中以便写入蓝牙设备。谁能告诉我如何做到这一点?

谢谢!

最佳答案

您可以使用 ByteBuffer如下:

ByteBuffer buf = ByteBuffer.allocate(8);

// Depending on the device you may need to include the following line
// buf.order(ByteOrder.LITTLE_ENDIAN);

buf.put((byte)16); // (# days in month)
buf.putShort(450); // (distance walked)
buf.putShort(334); // (distance ran)
buf.putShort(800); // (steps taken)
buf.put((byte)4); // (number of users)

byte[] byteArray = buf.array();

关于java - 将多个 uint8 和 uint16 组合成 1 字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25540766/

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