![](/img/trans.png)
[英]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.