2

インスタンスのメソッドを2^32 - 1使用して、Bluetooth 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 に答える