从蓝牙低能量GATT特性中检索一个大的32位无符号整数



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

我将FORMAT_UINT32传递给getIntValue,但因为它返回Integer,所以不能返回大于2^31 - 1的数字。当我尝试获取一个大于2^31 - 1的值时,它错误地返回了一个负整数。

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

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

看起来这对我有用:

long value = characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT32, 0) & 0x00000000ffffffffL;

相关内容

  • 没有找到相关文章

最新更新