java - 读取 NfcA MifareClassic NFC 标签

标签 java android nfc mifare

我有不同的标签:

我想读出我的 key 。 UID 为 20 66 为 52,ATQA 为 00 40 SAK 为 00 08(ATQA 和 SAK 与来自亚马逊的相同 key ,所以我猜它也是一个 Mifare Classic 1KB)

每当我尝试 transceive(byte[]) 时,我都会捕获 TagLostException。有趣的事实:广告标签效果更好但仍然抛出 IOException: Transceive failed

尝试将标签(对于我的 key )解析为 IsoDepMifareClassic 会抛出一个 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/

相关文章:

java - NullPointerException getJSONArray

android - 三星支付整合

java - Nosql模型结构

javascript - 读取 NFC 标签时调用 AngularJS 函数?

java - 我们可以将avro文件写入动态创建的GCS存储桶(基于tenantID)吗?

java - servlet 中 sendRedirect 的澄清

java - 如果编译一个空的 java 文件会发生什么?

android - 执行 Activity 而不在屏幕上显示布局

android - 如何访问使用 MIFARE 应用程序目录结构的 MIFARE Classic 卡?

android - 设置 NfcV MaxTransceiveLength