C# 如何使用c读取和写入NFC标签(卡:NTag-213,读卡器:ACR122)中的数据#
我需要使用Ntag-213卡和ACR122 NFC读卡器设备,用c#编写自定义程序来读写NFC标签、Iam 主要问题是将数据写入nfc标记 我试过这样写: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
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标签”,但您遇到了什么问题?异常?如果是,在哪一行?