利用Android手机的NFC功能读取银行卡信息

最近在研究NFC读取银行卡信息的东西,将支持NFC功能的手机靠近公交卡、银行卡等带有芯片的IC卡上,可迅速读取卡内余额、卡的信息,网上各种搜索,此方面的资源甚缺,摸索了一下,幸亏一位牛人博客地址:点击直达。收益良多,现在总结一下自己可以用到的东西,作为备忘。

ADT运行NFC读取Demo项目,真机调试,关键代码如下:

指令是PBOC的金融卡的标准指令,具体的组装还在研究,但是在上面提及到的大神的博客中获取到2个关键指令,1是复位指令,借记卡和贷记卡的指令不一样,然后发送读取卡号即可。返回的数据是以70开头的TLV模板数据:70425F24032405315A0A6217003110002217498F9F0702FF008E0C000000000000000002031F009F0D05D86004A8009F0E0500109800009F0F05D86804F8005F280201569000,其中6217003110002217498F就是卡号。

相关代码块:

//贷记卡发送复位指令:00A4040008A000000333010102
		//借记卡发送复位指令:00A4040008A000000333010101
		//读取银行卡卡号指令:00B2011400
		//返回数据:70425F24032405315A0A6217003110007217498F9F0702FF008E0C000000000000000002031F009F0D05D86004A8009F0E0500109800009F0F05D86804F8005F280201569000
		byte []b = tag.transceive(ReaderManager.hexStringToByte("00A4040008A000000333010101"));
		b = tag.transceive(ReaderManager.hexStringToByte("00B2011400"));  
//		b = tag.transceive(ReaderManager.hexStringToByte("00B2010C1D"));
//		b = tag.transceive(ReaderManager.hexStringToByte("00B2020C00"));
		System.out.println("返回数据 "+Util.toHexString(b));



你可能感兴趣的:(利用Android手机的NFC功能读取银行卡信息)