Android NFC:如何在NFC TAG上设置密码和授权?

Android NFC: How to setup password and auth on NFC TAG?

我有 ntag213,使用 react-native-nfc-manager 并将其与 andriod 一起使用,在我的标签的文档中 https://www.nxp.com/docs/en/data-sheet/NTAG213_215_216.pdf 我首先了解我需要先使用命令 0x1B 到 0x2B 和我的密码进行身份验证: 0xFF1FFFFF

let cmd = Platform.OS === 'ios' ? NfcManager.sendMifareCommandIOS : NfcManager.transceive; resp = await cmd(0x1B,0x2B,0xFF1FFFFF);

但是我的屏幕上出现错误并且不明白授权后的后续步骤。请解释它是如何工作的

我认为您尝试发送的命令有 2 个问题。

1) transceive 只需要一个字节数组,0xFF1FFFFF 不是字节数组而是一个大数字,需要双精度来存储。

因此您正在尝试发送 (byte,byte,double) 并且错误消息它无法将 double 转换为数组。

2) pwd_auth 命令只需要一个 5 字节的字节数组,1 字节命令 + 4 字节密码所以不知道为什么你在那里有 0x2B

所以试试

let cmd = Platform.OS === 'ios' ? NfcManager.sendMifareCommandIOS : NfcManager.transceive; resp = await cmd([0x1B,0xFF,0x1F,0xFF,0xFF]);

然后检查你的 PACK 是否正确,你没有得到 NACK

我不在我的应用程序中使用密码,但我相信您随后经过身份验证可以发送正常命令,直到您关闭连接或卡超出范围。