当前位置: 首页 > 知识库问答 >
问题:

在Windows窗体应用程序C#中使用ACR122U作为读写器将Ndef写入NFC标记

岑明辉
2023-03-14

我正在尝试使用ACR122U NFC阅读器在Windows窗体应用程序(用C#编写)中创建并写入NFC标记的NDEF消息。

我使用Andreas Jakl的NDEF库创建了NDEF消息的原始字节。这是C#代码

var spRecord = new NdefTextRecord {
                    Text = "1",
                    LanguageCode = "en"
                };

var msg = new NdefMessage { spRecord };

string hex = BitConverter.ToString(msg.ToByteArray());

resultBox.Text = hex.Replace('-',' ');

我得到的输出是D1 01 04 54 02 65 6E 31(十六进制)。

CL INS P1 P2 Lc     DATA IN
FF D6  00 05 04     D1 01 04 54

CL INS P1 P2 Lc     DATA IN
FF D6  00 05 04     02 65 6E 31
FF D6 00 04 04   03 08 D1 01
FF D6 00 05 04   04 54 02 65
FF D6 00 06 04   6E 31 FE 00

共有1个答案

饶明亮
2023-03-14

您不能只是将NDEF数据写入标记内的随机位置,然后期望其他设备可以发现这些数据。顺便说一下,请注意,您的两个write命令似乎都将不同的数据块写入标记上的相同块号。

MIFARE Ultralight标签符合NFC Forum Type 2标签操作规范。因此,您需要实现Type 2标签操作规范,以便将数据正确写入此类NFC标签。

因此,您需要首先在块3中确保标记包含一个正确配置的能力容器。对于MIFARE Ultralight而言,这可能类似于E1 10 06 00。(请注意,其他标记类型(如Ultralight C和各种NTAG标记)可能需要不同的CC。还请注意,您只能在CC块中设置位,但一旦设置,就不能清除它们,因此要小心您在其中写入的值。)

03 08 D1 01
04 54 02 65
6E 31 FE 00
FF D6 00 04 04   03 08 D1 01
FF D6 00 05 04   04 54 02 65
FF D6 00 06 04   6E 31 FE 00
 类似资料:
  • 如何将NDEF消息写入NFC标记?我必须更改清单文件吗?到目前为止,我有生成NDEF消息的代码: 如何发现标签?有人能帮我吗?

  • 我正在使用Mifare Ultralight C标记,并以NDEF格式向它们写入数据。我使用NDEF-NFC库为我的NDEF消息创建原始字节。我的NDEF消息是 我得到的输出是D1 01 04 54 02 65 6E 31(十六进制)。如果我按原样将此字节数组写入标记: 从标签读取并使用相同的NDEF NFC库后,我能够转换回所需的NDEF消息。 Android应用程序不识别NDEF消息。我尝试了

  • 我在这个回答中使用了Michael Roland提供的示例,并修改了bytes命令结构以匹配这个回答。 扫描标签后,我收到了来自读者的 个回复。但是,当我使用 NFC 工具扫描标签时,我没有看到它有 NDEF 记录(照片)。如果我检查内存,我可以看到从块 4 开始写入的数据,如下所示。 同时,如果我使用NFC工具的写标签功能来写NDEF消息,然后再次扫描标签,它确实有效。除了从块4开始的块以外的块

  • 问题内容: 我已经实现了通过低级通信方法与NTAG216进行交互的代码(紧随NTAG212 Mifare Ultralight withAuthentication和NTAG216的数据表之后)。 到目前为止,我取得了以下成就: 如果未设置密码或新标签/空白标签,请在NTAG216上设置密码写保护。 如果已设置密码,请使用PWD_AUTH并比较PACK进行身份验证。 读取数据。 写入/覆盖数据。

  • 我已经实现了通过低级通信方法与NTAG216交互的代码(遵循NTAG212 Mifare Ultralight与身份验证和NTAG216的数据表)。 如果未设置或如果新/空白标签,请在NTAG216上设置密码写入保护。 如果已设置密码,请使用PWD_AUTH并比较PACK进行身份验证。 读取数据。 写入/覆盖数据。 检测我在其他应用程序中写入标签的NDEF消息。换句话说,我可以使用方法写入标签,也

  • 我想将简单的文本数据写入我的恩智浦MiFARE DesFire EV1(NDEF Type 4标签)。但是,写入过程总是失败,并显示 为了写作,我得到NFC标签,我使用函数: 第三行()的结果如下: 由此我假设,标签的格式正确(作为NDEF)。现在,当调用<code>ndef时。connect()它只显示