我使用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);
}
};
答案 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);
}
感谢所有帮助我的人!