我有不同的标签:
- 亚马逊标签:NfcA http://www.amazon.de/gp/product/B00AESJ3B0/ref=oh_details_o00_s00_i00
- 我的 key :NfcA
- 一些广告标签:NfcA、Ndef、MifareUltraLight
我想读出我的 key 。 UID 为 20 66 为 52
,ATQA 为 00 40
SAK 为 00 08
(ATQA 和 SAK 与来自亚马逊的相同 key ,所以我猜它也是一个 Mifare Classic 1KB)
每当我尝试 transceive(byte[])
时,我都会捕获 TagLostException
。有趣的事实:广告标签效果更好但仍然抛出 IOException: Transceive failed
尝试将标签(对于我的 key )解析为 IsoDep
或 MifareClassic
会抛出一个 Nullpointer
。只有 NfcA
有效,但我无法从标签中读取任何数据。
有人可以提供我的有效命令或任何其他方式来从 Android 读取内容。
MifareClassic mfc = MifareClassic.get(tagFromIntent);
mfc.connect(); //Nullpointer
编辑: 问题似乎出在我的 Nexus 4(主要是为了 NFC 东西而买的 :( ) 它似乎不支持 MIFARE Classic 标签。但如果您仍有想法,请将它们写下来。
最佳答案
好的,现在很清楚了:Nexus 4 不支持 MIFARE Classic(例如 MIFARE Ultralight 可以)
它可以读取 UID、ATQA 和 SAK,但不能写入或读取 block /扇区。
遗憾的是,像 Nexus 4(以及 Nexus 10)这样的高端/旗舰设备无法读取最流行的标签。
关于java - 读取 NfcA MifareClassic NFC 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14678825/