Я хочу взять значение байта из этого класса, чтобы я мог его разобрать, или, если возможно, разобрать его внутри и получить значение 5-го и 6-го байтов.Как взять значение байта из этого класса?
private void broadcastUpdate(final String action,
final BluetoothGattCharacteristic characteristic) {
final Intent intent = new Intent(action);
// This is special handling for the Heart Rate Measurement profile. Data parsing is
// carried out as per profile specifications:
// http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.heart_rate_measurement.xml
if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {
final byte[] data = characteristic.getValue();
if (data != null && data.length > 0) {
final StringBuilder stringBuilder = new StringBuilder(data.length);
for(byte byteChar : data)
stringBuilder.append(String.format("%02X", byteChar));
intent.putExtra(EXTRA_DATA, new String(data) + "\n" + stringBuilder.toString());
} else {
// For all other profiles, writes the data formatted in HEX.
}
}
sendBroadcast(intent);
}
Как это работает в том, что я ступаю по шкале и он посылает мне эти байты:
00 00 00 00 02 02 00 00 00 00 00 00 00 00 00 00
, который хранится в переменной «данные». Как использовать данные для использования в другом классе?
Данные о весе находятся в байтах 5 и 6. Если вы преобразуете шестнадцатеричные значения байтов 5 и 6, в этом примере это «0202
», то он станет 514 в десятичной форме (51,4 кг).
Мне нужно взять данные байтов для использования в другом классе, чтобы получить данные о килограммах. Как мне обойти это?
'данных [5] * 256 + данные [6]'? Если вы хотите преобразовать его в значение float (kg) 'double weight = (data [5] * 256 + data [6])/10.0'? –
Да, я понял. Однако мне нужно получить данные байта (которые хранятся в переменной «данные») из класса для его использования. Я угадываю намерения или что-то в этом роде, я не уверен. Благодарю. – Anj