从Flutter中的NFC标签读取字节数据

时间:2019-03-01 14:03:36

标签: flutter nfc

因此,我是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方法未返回正确的数据...我认为是因为整数数据超出字符串范围?也许?

任何见识都会受到赞赏

0 个答案:

没有答案