NFCA Transcieve APDU TaglostException或任何apdu命令转换器到低级别的transcieve nfca

时间:2013-04-04 10:30:08

标签: android nfc apdu

这可能看起来像一个多余的问题,但它不是......我的英语......  我用Google搜索并做了一个星期而没有找到解决方案。真的希望你们能帮助我,谢谢......

基本上,我想做一个Android应用程序,可以通过nfca读取我的id标签 我的nfc标签gettechlist规格类型是mifare classic 1k,nfca和ndef formattable。

但从我用Google搜索的内容我尝试了两种解决方案: a)使用mifare经典来获取对象,使用sectora进行身份验证 然后读取每个块和扇区。但是,我现在放弃了这个解决方案,因为我的标签是身份证.. 在trygin几乎所有流行的键之后,我无法使用sectora进行身份验证。  我的第一个问题在这里我可以采取什么其他选择?

b)我看到很多示例代码用智能卡读卡器读取myk @ d标签,通过执行交换apdu命令来获取数据。  在android中,解决方案是使用isodep类,然后在transcieve()方法中放置相应的byte []   因为它符合7816-4 iso ..但是,我的卡不支持isodep,当我尝试将其设置为isodep时它会命中为null。   我的第二个2)问题,有什么方法可以将nfca实例传递给isodep transcieve吗?   因为我cehck开发人员api android .. none ..   第三个问题3)现在,我终于决定使用NfcA实例iso 14443-a / 7816-3作为下面的代码片段,但我需要一个api智能卡包装器(convertToLowLevelNFCA)来包装我的apdu命令   进入一个协议,将返回低级字节,以便我的nfca可以转换...任何建议?

下面的代码除了传输部分外都有效。很感谢提前..

//这个字节[]是正确的,在我检查了几个网站之后,我的标签卡供应商是否正确   byte [] selApp = new byte [] {(byte)0x00,(byte)0xA4,              (字节)0x04,(字节)0x00,(字节)0xA0,(字节)0x00,                     (字节)0x00,(字节)0x00,(字节)0x74,(字节)0x4A,                     (字节)0x50,(字节)0x4E,(字节)0x00,(字节)0x10,                     (字节)0x00};

NfcA myTag = (NfcA) NfcA.get(myTag0);
    try {

         myTag.connect();
         myTag.setTimeout(5000);   

         //question 2) is it viable ?
         //          eg. IsoDep myTag2 = (IsoDep)myTag;           ?
         //          byte[] response0 = myTag2.transceive(selApp);   ?


         //question 3 )   eg. myTag.transceive( convertToLowLevelNFCA(selApp)  ) ?
            byte[] response0 = myTag.transceive(selApp);// here not working .. return tag lost exception?

            String hexResp0 = bytesToHex(response0);


            myTag.close();
            mUnlocked = true;



    } catch (IOException e) {
        alertbox("Device", "Failed exception connect" + e.getMessage());

    }

0 个答案:

没有答案