2012-09-24 87 views
0

我正在尝试使Android应用程序写NFC标签。要看到如何做到这一点,我已经下载了一个例子。但是,该示例不起作用。它说它无法验证。这只能表示它对这种类型的卡使用了不正确的密钥。奇怪的是,即使是KEY_DEFAULTKEY_MIFARE_APPLICATION_DIRECTORY键也无法在我的空白卡上工作。 Mifare是否以任何方式更换了钥匙?Mifare Classic 1k写钥匙

编辑:这是我的代码。

  /* 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

参阅本博客:http://nearfieldcommunication.com/developers/android/ http://mifareclassicdetectiononandroid.blogspot.jp/2011/04/reading-mifare-classic- 1k-from-android.html希望这将有助于您了解Google理解 –

回答

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(); 
    } 
} 
+0

猜猜......没有MIFARE支持!'谢谢你的帮助,现在我要告诉我的老板他订购了200个错误的标签。 –

+0

有趣。我搜索了该设备,制造商的网站似乎声称他们支持MIFARE。所以我想知道发生了什么。 –

+0

您提到设备运行2.3.4。 2.3的[Android Compatibility Device Description](http://static.googleusercontent.com/external_content/untrusted_dlcp/source.android.com/en//compatibility/android-2.3-cdd.pdf)没有提及“com.nxp .mifare“,而[CDD for 4.1](http://static.googleusercontent.com/external_content/untrusted_dlcp/source.android.com/en//compatibility/4.1/android-4.1-cdd.pdf)。有些可能还有希望。 –

1

要么你有你的应用程序(S)的bug,或者有钥匙已定制。使用类似NFC TagInfo的应用程序来检查您是否可以使用默认键读取/写入卡片。如果它不起作用,请联系向你出售卡片的人,并询问他们钥匙是什么。

+0

我无法从Play商店安装应用,因为我的测试设备已经扎根,并且没有与其关联的Play商店/ Google帐户。 –

+0

在这种情况下,请尝试使用桌面阅读器或安装了Google Play的其他Android设备阅读您的卡片。顺便说一句,根植并不妨碍您使用Play商店。你使用什么设备? –

+0

我正在使用运行Android 2.3.4的Ubiqconn平板电脑。确实可以安装Google Play,但无法将Google帐户添加到设备。设置 - >帐户和同步 - >添加帐户仅允许Microsoft Exchange帐户出于某种原因。 我没有桌面NFC读卡器。 –

相关问题