Итак, я новичок в Flutter / Dart и пишу приложение, которое использует пакет flutter_nfc_reader / flutter_nfc_reader.dart для чтения тега NFC.Содержимое MimeMediaRecord является байтовым массивом.Содержимое NfcData () -> возвращает строку, которая содержит идентификатор Mime, например, «cp / Morn» в моем случае, за которым следуют байтовые данные.
Я разделил идентификатор Mime с помощью String.substring () итеперь у меня есть строка, содержащая только байтовые данные? Надеюсь?.
Мой вопрос: как мне перебрать строку содержимого и извлечь каждый байт, а затем сгруппировать каждые 4 байта в целое число?
Я закодировал данные тега, используя этот метод C:
void uint32_to_ByteArrayLE (uint32_t x, uint8_t* byteArray)
{
byteArray[0] = (uint8_t)(x >> 0);
byteArray[1] = (uint8_t)(x >> 8);
byteArray[2] = (uint8_t)(x >> 16);
byteArray[3] = (uint8_t)(x >> 24);
}
Мне понадобится эквивалент этого метода C в Flutter / Dart:
void ByteArrayLE_to_uint32 (const uint8_t* byteArray, uint32_t* x)
{
*x = (uint32_t)byteArray[0] << 0 |
(uint32_t)byteArray[1] << 8 |
(uint32_t)byteArray[2] << 16 |
(uint32_t)byteArray[3] << 24;
}
Это пример моегосодержимое, которое содержит пять MimeMediaRecords
�cp/Morn��������������������cp/Lunch��������������������cp/After��������������������cp/Eve��������������������Rcp/cpjd
Проще говоря: «Как создать массив байтов из строки и обработать 4 байта в целое число?»
Код utf8.en и руныметоды не возвращают правильные данные ... Я думаю, потому что целочисленные данные находятся за пределами диапазона строки?возможно?
Любое понимание будет оценено