2013-02-04 180 views
3

我有不同的标签:阅读NFCA MifareClassic NFC标签

我想读出我的密钥。 UID是20 66 be 52,在ATQA是00 40的SAK是00 08(ATQA和SAK是一样的,从亚马逊的关键,所以我想这也是MIFARE经典1KB)

每当我试着transceive(byte[])我赶上TagLostException 。滑稽的事实:广告标签效果更好,但仍然抛出IOException: Transceive failed

试图标签(我的钥匙)解析到IsoDepMifareClassic抛出一个Nullpointer。只有NfcA有效,但我无法从标签读取任何数据。

有人可以提供我的有效命令或任何其他方式来读取Android的内容。

MifareClassic mfc = MifareClassic.get(tagFromIntent); 
mfc.connect(); //Nullpointer 

编辑:。好像这个问题可能是我的Nexus 4(主要是买给NFC东西:()好像不支持MIFARE经典标签,但如果仍然有想法写下来

回答

3

好了,现在是明确的:的Nexus 4不支持MIFARE经典(如MIFARE超轻作品)

可以读取UID,ATQA和SAK但不能写也不会从块读/部门。

很遗憾,像Nexus 4这样的高端/旗舰设备(也包括Nexus 10)无法读取最流行的标签。

+1

没错。它不支持它并不是因为它不符合NFC论坛,而是因为它使用了Broadcom和Google不想许可的专有加密算法(Crypto 1)。在使用恩智浦NFC控制器(Nexus S,Galaxy Nexus等)的设备上,您可以免费获得该设备,因为硬件支持它。通常,您需要检查结果'SomeNfcTech.get()'为null,因为并不是所有的都被支持。 –

+1

此外,Crypto 1算法已完全破解,对于新项目使用Classic没有任何借口。 –

+1

我不会支付完全损坏的crypo的许可费用。 Mifare Classic消失对于NFC技术来说是件好事。 –