NFC-V ICODE SLIX(SL2S2002)

时间:2018-10-09 14:41:01

标签: android nfc rfid iso-15693

我正在开发一个用于在Android下管理ICODE SLIX-S标签的应用程序。我发现有关数据表(https://www.nxp.com/docs/en/data-sheet/SL2S2002_SL2S2102.pdf第16页)中定义的“ SET_PASSWORD”的问题。已经有关于该问题的讨论(NFC-V SLIX-S write password),但尚未解决。我认为问题是传递给收发器的命令的格式,我尝试了其他格式,但没有解决方案。如果有人以任何方式解决了,非常感谢!

cmd = new byte[] {
    (byte)0x00,  // FLAGS
    (byte)0xB3,  // SET_PASSWORD!
    (byte)0x04, //manufacturer code (NXP should be 0x04)
    //0, 0, 0, 0, 0, 0, 0, 0,
    (byte)0x10,
    0, 0, 0, 0
};
//System.arraycopy(detectedTag.getId(), 0, cmd, 3, 8);  // paste tag UID into command
System.arraycopy(exorPassword, 0, cmd, 4, 4);
response = nfcV.transceive(cmd);  


W/System.err: android.nfc.TagLostException: Tag was lost.
    at android.nfc.TransceiveResult.getResponseOrThrow(TransceiveResult.java:48) <- THIS ON TRANSCEIVE

2 个答案:

答案 0 :(得分:2)

NFC-V android堆栈无法正常运行。它在Android OS上退出超时问题。 因此,有时即使您获得了TagLost,命令也会在Icode SLIX2上执行。 我发现最好的解决方案是使用NXP TapLink库。它取代了NFC android堆栈,并与它们的NXP标签(从Mifare到ICode)配合得很好。

设置的密码将变为:

byte[] rand = iCodeSLIX2.getRandomNumber();
byte[] pwd = Utilities.xor(password, Utilities.append(rand, rand));
iCodeSLIX2.setPasswordWrite(pwd);

答案 1 :(得分:0)

请再次查看“ NFC-V SLIX-S write password”帖子。我找出来并发布了解决方案。 正确输入密码的方法是先输入密码。 即使您拥有的新卡不在“隐私模式”下,也必须使用默认的预设密码“ 0F0F0F0F”执行SET PASSWORD命令。

当然,您必须使用正确的标志!对于SET PASSWORD,它应该是02,对于WRITE PASSWORD,它应该是22!

问候 甘布留斯