在Android Studio中接收32位

时间:2017-05-14 10:20:13

标签: java android

我使用Nordic Semiconductor nRF52在我的Android应用程序上发送32位值,但它并不是每次都能正常工作。 在nRF52上,我发送一个4字节的数组。

例如,当我发送12345678时,我在手机上收到12345678:它没问题 当我发送24时,它也可以。 但是当我发送7或107时,它确实有效。

你知道为什么,拜托?

在Android应用上,我这样做:

@Override
    public void onCharacteristicNotified(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic) {
        int data = characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT32, 0);

        String dataHexadecimal = Integer.toHexString(data);
        byte[] value = hexStringToByteArray(dataHexadecimal);

        int valeurFinale = 0;
        valeurFinale = value[3]*1000000 + value[2]*10000 + value[1]*100 + value[0];

        ControlBlinkyActivity.txtSiReception.setText("Reception : " + String.valueOf(valeurFinale));

        mCallbacks.onDataReceived(data = 1);
    }
};

1 个答案:

答案 0 :(得分:0)

这是我的功能代码:

@Override
    public void onCharacteristicNotified(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic) {

        int data = characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT32, 0);
        data = swap(data);
        String dataHexadecimal = Integer.toHexString(data);

        byte[] value = {0,0,0,0};
        value = hexStringToByteArray(dataHexadecimal);

        int finalValue = value[0]*1000000 +  value[1]*10000 +  value[2]*100 +  value[3];

        ControlBlinkyActivity.txtSiReception.setText("Reception : " + String.valueOf(valeurRecue));
        mCallbacks.onDataReceived(data = 1);
}

感谢所有帮助我的人!