我正在尝试使用 getIntValue
从蓝牙 4.0 特征中检索非常大(可能是 2^32 - 1
)的无符号 32 位整数。我的方法BluetoothGattCharacteristic
实例。
我路过FORMAT_UINT32
至getIntValue
,但因为它返回一个 Integer
,所以它不能返回大于 2^31 - 1
的数字。当我尝试获取大于 2^31 - 1
的值时,它错误地返回负整数。
getIntValue
有什么意义?接受FORMAT_UINT32
如果它不可能返回无符号 32 位整数?我有什么遗漏的吗?
这是我唯一使用 getValue()
的选择并手动将其转换为long
?
最佳答案
看起来这对我有用:
long value = characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT32, 0) & 0x00000000ffffffffL;
关于android - 从蓝牙低功耗 GATT 特性中检索大型 32 位无符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17968270/