因此,我是Flutter / Dart的新手,我正在编写一个使用flutter_nfc_reader / flutter_nfc_reader.dart包读取NFC标签的应用。 MimeMediaRecord的内容是一个字节数组。 NfcData()-> content返回一个字符串,其中包含Mime标识符,例如在我的情况下为“ cp / Morn”,然后是字节数据。
我已经使用String.substring()对Mime标识符进行了条带化处理,现在我有了一个仅包含字节数据的字符串?希望吗?。
我的问题是如何遍历Content字符串并提取每个字节,然后将每个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);
}
在Flutter / Dart中,我需要与此C方法等效的方法:
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.encode和runes方法未返回正确的数据...我认为是因为整数数据超出字符串范围?也许?
任何见识都会受到赞赏