android - 从蓝牙低功耗 GATT 特性中检索大型 32 位无符号整数

标签 android bluetooth bluetooth-lowenergy android-bluetooth android-4.3-jelly-bean

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

我路过FORMAT_UINT32getIntValue ,但因为它返回一个 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/

相关文章:

android - 在 Android 中使用 libusb 捕获音频

android - 在 IntentService 中创建的 Toast 永远不会消失

java - 在 Android 中从服务器获取和发送数据的最佳方法

Apache Cordova 和蓝牙

Android One 作为信标发射器

objective-c - 蓝牙核心框架回调例程 peripheralManagerIsReadyToUpdateSubscribers : isn't called

iOS Swift - 关于蓝牙低功耗管理器中的信号量和排序的问题

android - 通过相机使用动态坐标捕获图像

ios - CoreBluetooth 外围设备标识符更改

ios - 如何使用 Swift 通过 LE 蓝牙将 MIDI 数据从 iOS 发送到 OS X