从蓝牙低功耗 GATT 特性中检索大的 32 位无符号整数
Posted
技术标签:
【中文标题】从蓝牙低功耗 GATT 特性中检索大的 32 位无符号整数【英文标题】:Retrieving a large 32 bit unsigned integer from a Bluetooth low energy GATT characteristic 【发布时间】:2013-07-31 10:46:56 【问题描述】:我正在尝试使用我的BluetoothGattCharacteristic
实例的getIntValue
方法从蓝牙4.0 特性中检索一个非常大(可能是2^32 - 1
)的无符号32 位整数。
我将FORMAT_UINT32
传递给getIntValue
,但是因为它返回一个Integer
,所以它不能返回一个大于2^31 - 1
的数字。当我尝试获取大于 2^31 - 1
的值时,它错误地返回负整数。
如果getIntValue
不可能返回无符号的 32 位整数,那么接受 FORMAT_UINT32
的意义何在?有什么我遗漏的吗?
我唯一的选择是使用getValue()
并手动将其转换为long
?
【问题讨论】:
【参考方案1】:看起来这对我有用:
long value = characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT32, 0) & 0x00000000ffffffffL;
【讨论】:
以上是关于从蓝牙低功耗 GATT 特性中检索大的 32 位无符号整数的主要内容,如果未能解决你的问题,请参考以下文章