C# 如何使用c读取和写入NFC标签(卡:NTag-213,读卡器:ACR122)中的数据#

C# 如何使用c读取和写入NFC标签(卡:NTag-213,读卡器:ACR122)中的数据#,c#,nfc,C#,Nfc,我需要使用Ntag-213卡和ACR122 NFC读卡器设备,用c#编写自定义程序来读写NFC标签、Iam 主要问题是将数据写入nfc标记 我试过这样写: public bool WriteBlock(String Text, String Block) { char[] tmpStr = Text.ToArray(); int indx; if (AuthBlock(Block)) { ClearBuffers(); SendB

我需要使用Ntag-213卡和ACR122 NFC读卡器设备,用c#编写自定义程序来读写NFC标签、Iam

主要问题是将数据写入nfc标记

我试过这样写:

public bool WriteBlock(String Text, String Block)
{

    char[] tmpStr = Text.ToArray();
    int indx;
    if (AuthBlock(Block))
    {
        ClearBuffers();
        SendBuff[0] = 0xFF; // CLA 
        SendBuff[1] = 0xD6;// INS
        SendBuff[2] = 0x00;// P1                           // P1
        SendBuff[3] = (byte)int.Parse(Block);           // P2 : Starting Block No.
        SendBuff[4] = (byte)int.Parse("16");            // P3 : Data length

        for (indx = 0; indx <= (tmpStr).Length - 1; indx++)
        {
            SendBuff[indx + 5] = (byte)tmpStr[indx];
        }


        SendLen = SendBuff[4] + 5;
        RecvLen = 0x02;

        retCode = SendAPDUandDisplay(2);


        if (retCode != Card.SCARD_S_SUCCESS)
            return false;
        else
            return true;
    }
    else
        return false;
}
public bool WriteBlock(字符串文本、字符串块)
{
char[]tmpStr=Text.ToArray();
int indx;
if(AuthBlock(块))
{
ClearBuffers();
SendBuff[0]=0xFF;//CLA
SendBuff[1]=0xD6;//INS
SendBuff[2]=0x00;//P1//P1
SendBuff[3]=(字节)int.Parse(块);//P2:起始块编号。
SendBuff[4]=(byte)int.Parse(“16”);//P3:数据长度

对于(indx=0;indx观察CLA,INS肯定是错误的

请参阅Ultralight写入的示例 它也适用于NTAG

步骤3)用数据“AA BB CC DDh”更新第04h页的内容。
(德克萨斯州)FF 00 00 09 D4 40 01 A2 04 AA BB CC DDh
(Rx)61 05h
(德克萨斯州)FF C000 05小时
(Rx)D5 41[00]90 00小时

步骤3)使用数据“AA BB CC DDh”写入(Mifare兼容写入)第04h页的内容。
(德克萨斯州)FF 00 00 15 D4 40 01 A0 04 AA BB CC DD 00 00 00小时
(Rx)61 05h
(德克萨斯州)FF C000 05小时
(Rx)D5 41[00]90 00小时
提示:执行此命令是为了适应已建立的Mifare 1K/4K基础设施。我们 必须将数据组装成16字节的帧。前4个字节是要写入的数据 页面,而其余字节(12个零)用于填充。只更新块4(4个字节) 即使16个字节被发送到读卡器。

“主要问题是将数据写入nfc标签”,但您遇到了什么问题?异常?如果是,在哪一行?