2016-08-13 79 views
0

我試圖通過NFC從智能卡讀取證書。以下代碼在Samsung S7,S5和Nexus中正常工作。但我沒有注意到它在Note 4和S6中沒有工作的原因。對於S6和注4,我發現了收發響應6700以下是我的代碼我無法通過NFC從智能卡讀取證書

READ_CERTIFICATE_APDU_COMMAND = 
      {0x00, (byte) 0xCB, 0x3F,(byte) 0xFF, 0x00,0x00, 0x05, 0x5C, 0x03, (byte) 0x5F, (byte) 0xC1, 0x01, 0x10,0x00 }; 

    Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 
    isoDep = IsoDep.get(tag); 
    isoDep.setTimeout(5000); 
    byte[] responseFromCard= isoDep.transceive(READ_CERTIFICATE_APDU_COMMAND); 

    Thanks in Advance.. 

回答

-1

您正在使用MIFARE卡。這些標籤部分基於IOS/IEC 14443-3A。他們使用恩智浦擁有的專有算法和專有幀。恩智浦還是miFare卡技術的擁有者。只有NXP NFC芯片才能與Mifare卡一起使用。

如果你看看this list of nfc enabled-phones,你會注意到三星S7,S5和一些Nexus正在使用恩智浦的NFC芯片。 Note 4和S6正在使用Broadcom NFC芯片。這是它不工作的原因。

+0

儘管關於MIFARE Classic的說明基本上是正確的,但OP使用IsoDep標籤技術(即ISO/IEC 14443-4)清楚地表明它們不是使用MIFARE Classic卡的**。 –

+0

哦,你說得對。在他的解釋中,他談到了smartcart,這就是爲什麼我感到困惑。 無論如何,兩套手機之間的主要區別仍然是NFC芯片。你對此有何看法? –

+0

這裏的問題是,當我通過isoDep.transceive(comand)發送命令時,總是收到「TAG LOST Exception」。特別是在S6和Note4中。請 – user3206549