繁体   English   中英

通过Android 2.3.3 NFC读取PayWave(ISO14443-B格式)跟踪信息

[英]Reading PayWave (ISO14443-B format) track information through Android 2.3.3 NFC

我正在尝试读取付款卡PayWave,PayPass )的跟踪数据 据我了解,它们遵循ISO 14443 B。 使用新的NFC API,

  1. 我可以连接IsoDep格式而不会引发任何异常
  2. 调用getHiLayerResponse()-不返回任何内容:(。现在呢?

后来我尝试调用transceive()方法,但徒劳无功(我不知道APDU命令)。

有人可以帮助我如何阅读/获取PayWave或PayPass卡(支付卡)的详细信息吗?

if ( NfcAdapter.ACTION_TAG_DISCOVERED.equals(action) ) {

       Parcelable nfcTag = intent.getParcelableExtra("android.nfc.extra.TAG");
       Tag t = (Tag)nfcTag;
       IsoDep myTag = IsoDep.get(t);

       String s1 = null, s2 = null;
       byte[] b1 = myTag.getHiLayerResponse(); //b1 is not null, but length == 0
       if( b1 != null && b1.length > 0 )
           s1 = new String(b1);

       byte[] b2 = myTag.getHistoricalBytes(); //returns nothing coz its NfcB
       if(b2 != null && b2.length > 0)
           s2 = new String(b2);

       if( !myTag.isConnected() )
       {
           myTag.connect();

           String sData = "0xBB"; // got this magic value from web
           byte []data = sData.getBytes();
           result = myTag.transceive(data);
           if(result != null && result.length > 0)
           {
               s3 = new String(result); // value of s3 will be "m"
           }
       }
}

任何帮助都会很棒,请阐明一下...预先感谢

Triangle.io还有一个API,使您可以免费执行此操作,并且可以将其集成到自己的应用程序中。 您可以从Google Play下载示例应用程序。

免责声明:我为triangle.io工作

尝试这个

byte[] cmd={(byte)0x00,(byte)0xB2,(byte)0x01,(byte)0x0C,(byte)0x00};
byte[] response=iso.transceive(cmd);

这是读取记录的命令。 要阅读APDU命令的规范,请参阅此

http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4.aspx

这些命令给出一个字节数组作为响应。 并在上面的链接中说明了格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM