我正在开发一个用于在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
答案 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!
问候 甘布留斯