[英]Reading data from NFC Type B (ISO 14443-3B) in android nfc; getting NoClassDefFoundError
[英]Reading PayWave (ISO14443-B format) track information through Android 2.3.3 NFC
我正在嘗試讀取付款卡 ( PayWave,PayPass )的跟蹤數據 。 據我了解,它們遵循ISO 14443 B。 使用新的NFC API,
后來我嘗試調用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.