我正在尝试制作一个Android应用程序来编写NFC标签。为了看看如何做到这一点,我已经下载了一个例子。但是,该示例不起作用。它说无法进行身份验证。这只能意味着它对这种类型的卡使用了错误的密钥。奇怪的是,即使KEY_DEFAULT
和KEY_MIFARE_APPLICATION_DIRECTORY
密钥也不能在我的空白卡上工作。 Mifare是否以任何方式改变了密钥?
编辑:这是我的代码。
/* Authenticate the MAD Sector, sector 1, with key A */
succes = mClassic.authenticateSectorWithKeyA(
1, key);
if (succes) {
/* Authentication succeeded */
/*
* This will read a 16-byte block in this sector
* It is an I/O operation and will block until complete.
* It must not be called from the main application thread.
**/
b.append(mClassic.readBlock(1), 0, 16);
b.append(mClassic.readBlock(2), 0, 16);
b.append(mClassic.readBlock(3), 0, 16);
data = b.toByteArray();
}
/* Authentication failed */
else
sb.append("Authentication failed");
mClassic.close();
}
我已经尝试使用以下键:
MifareClassic.KEY_DEFAULT
MifareClassic.KEY_MIFARE_APPLICATION_DIRECTORY
00 00 00 00 00 00
ff ff ff ff ff ff
一切都无济于事..
答案 0 :(得分:2)
我不熟悉Ubiqconn平板电脑。我要做的第一件事是检查设备中的NFC实现是否实际支持MIFARE。在您的主要活动onCreate()
添加:
public void onCreate(Bundle bundle) {
...
if (!getPackageManager().hasSystemFeature("com.nxp.mifare")) {
Toast.makeText(this, "No MIFARE support!", Toast.LENGTH_LONG).show();
}
}
答案 1 :(得分:1)
您的应用中存在错误,或者密钥已自定义。使用NFC TagInfo之类的应用来检查您是否可以使用默认密钥读取/写入卡。如果它不起作用,请联系向您出售卡片的人,并询问他们的钥匙是什么。