2

我正在尝试使用我的实例2^32 - 1的方法从蓝牙 4.0 特性中检索一个非常大(可能)的无符号 32 位整数。getIntValueBluetoothGattCharacteristic

我正在传递FORMAT_UINT32getIntValue,但因为它返回一个Integer它不能返回一个大于的数字2^31 - 1。当我尝试获取一个大于2^31 - 1它的值时,它会错误地返回一个负整数。

如果它不可能返回一个无符号的 32 位整数,那么getIntValue接受它有什么意义呢?FORMAT_UINT32有什么我想念的吗?

我唯一的选择是使用getValue()并手动将其转换为long?

4

1 回答 1

2

看起来这对我有用:

long value = characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT32, 0) & 0x00000000ffffffffL;
于 2013-07-31T11:08:40.380 回答