安卓扫描银行卡获取卡号信息
不得不说card.io开源的银行卡扫描的三方库真的是很好用啊,非常稀饭,使用简单,而且给你提供的API很多,满足大部分的需要(反正是满足我的各种需求了)
首先上一个效果图
1 对准银行卡的四角就能够扫描出来银行卡信息,你集成的话首先需要在你的module的gradle的依赖文件中添加一句话,最好使用最新的版本号(后面就是最新的版本号的意思,因为人家辛辛苦苦修复了问题,不用多不合适)
compile 'io.card:android-sdk:latestversioncode'
2 清单文件中加入如下Activity
<activityandroid:name="io.card.payment.CardIOActivity"android:configChanges="keyboardHidden|orientation"/><activity android:name="io.card.payment.DataEntryActivity"/>
3 xml文件中
<Buttonandroid:id="@+id/btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:onClick="onScanPress"android:text="银行卡识别"/><TextViewandroid:id="@+id/card_tv"android:layout_width="368dp"android:layout_height="wrap_content"android:gravity="center"android:text="银行卡号"/>
4 代码中
这里面暴露了很多的API,大致查了一下有二十多个,比如是否隐藏LOGO标志,是否需要银行卡有效期的信息,扫描线的颜色(默认是Color.GREEN),是否需要CVV信息,邮政编码等,下面对其介绍一下
scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, false); // default: false不需要 是否需要失效日期等信息scanIntent.putExtra(CardIOActivity.EXTRA_HIDE_CARDIO_LOGO, false); // default: false 是否隐藏LOGO标记scanIntent.putExtra(CardIOActivity.EXTRA_USE_CARDIO_LOGO, true); // default: false 是否使用card.io LOGOscanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_POSTAL_CODE, false); // default: false不需要 邮政编码scanIntent.putExtra(CardIOActivity.EXTRA_GUIDE_COLOR, Color.GREEN); // default: Color.GREEN 扫描线的颜色scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_CVV, false); // default: false不需要 CVV信息
全部代码如下
/*** 银行卡识别*/
public class CardIdentifyActivity extends BaseActivity {public static final int MY_SCAN_REQUEST_CODE = 10;public TextView mTextView;@Overrideprotected int getLayoutId() {return R.layout.activity_card_identify;}@Overrideprotected void initView() {mTextView = (TextView) findViewById(R.id.card_tv);}@Overrideprotected void afterInitView() {super.afterInitView();EventBus.getDefault().register(this);}@Subscribepublic void onEventMainThread(UpdateCardNumberEvent event) {if (!TextUtils.isEmpty(event.getNumber())) {mTextView.setText(event.getNumber());}}public void onScanPress(View view) {Intent scanIntent = new Intent(this, CardIOActivity.class);// customize these values to suit your needs.scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, false); // default: false不需要 是否需要失效日期等信息scanIntent.putExtra(CardIOActivity.EXTRA_HIDE_CARDIO_LOGO, false); // default: false 是否隐藏LOGO标记scanIntent.putExtra(CardIOActivity.EXTRA_USE_CARDIO_LOGO, true); // default: false 是否使用card.io LOGOscanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_POSTAL_CODE, false); // default: false不需要 邮政编码scanIntent.putExtra(CardIOActivity.EXTRA_GUIDE_COLOR, Color.GREEN); // default: Color.GREEN 扫描线的颜色scanIntent.putExtra(CardIOActivity.EXTRA_REQUIRE_CVV, false); // default: false不需要 CVV信息// MY_SCAN_REQUEST_CODE is arbitrary and is only used within this activity.startActivityForResult(scanIntent, MY_SCAN_REQUEST_CODE);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == MY_SCAN_REQUEST_CODE) {String resultDisplayStr;if (data != null && data.hasExtra(CardIOActivity.EXTRA_SCAN_RESULT)) {CreditCard scanResult = data.getParcelableExtra(CardIOActivity.EXTRA_SCAN_RESULT);// Never log a raw card number. Avoid displaying it, but if necessary use getFormattedCardNumber()resultDisplayStr = "Card Number: " + scanResult.cardNumber + "\n";Log.i("aaa", "银行卡号:" + resultDisplayStr);EventBus.getDefault().post(new UpdateCardNumberEvent(resultDisplayStr));// Do something with the raw number, e.g.:// myService.setCardNumber( scanResult.cardNumber );if (scanResult.isExpiryValid()) {resultDisplayStr += "Expiration Date: " + scanResult.expiryMonth + "/" + scanResult.expiryYear + "\n";Log.i("aaa", "银行卡号有效期:" + resultDisplayStr);}if (scanResult.cvv != null) {// Never log or display a CVVresultDisplayStr += "CVV has " + scanResult.cvv.length() + " digits.\n";}if (scanResult.postalCode != null) {resultDisplayStr += "Postal Code: " + scanResult.postalCode + "\n";}} else {resultDisplayStr = "Scan was canceled.";}// do something with resultDisplayStr, maybe display it in a textView// resultTextView.setText(resultDisplayStr);}// else handle other activity results}@Overrideprotected void onDestroy() {super.onDestroy();EventBus.getDefault().unregister(this);}
}
最后扫描结果如下
最后附上github地址
https://github.com/card-io/card.io-Android-SDK
安卓扫描银行卡获取卡号信息相关推荐
- Android 银行卡扫描识别获取卡号
用card.io 实现的银行卡扫描,免费 Card.io是让手机摄像头获取信用卡的信息,中间利用了OCR(光学字符识别)的扫描技术返回结果,它还推出了SDK(软件开发包),让开发者们可以把card.i ...
- C# 服务端(API)连接 安卓设备 读取 IC卡(仅读取ID),RFID卡(包含ID卡),获取卡号(10进制)
处理安卓设备NFC读卡 C#WebAPI做服务端 APP使用 uni-app开发, 走了不少弯路,这里记录一下 获取 卡10进制ID的方法 商米POS.安卓移动设备(手机)通过NFC功能 读取 IC卡 ...
- 扫描NFC卡,获取卡号存储到本地并可以以Excel形式导出数据
这是一个使用支持NFC的手机扫描NFC射频卡获取到卡号,使用greenDao数据库做本地存储,扫完之后可以将数据以Excel表格形式导出查看数据.不是什么新技术,内容比较简单,这里就主要贴源码了,没有 ...
- android获取卡号号码,Android银行卡扫描获取银行卡号
ard.io开源的银行卡扫描的三方库真的是很好用啊. 首先需要在你的module的gradle的依赖文件中添加依赖 compile 'io.card:android-sdk:5.5.1' 2 清单文件 ...
- zencart1.55stripe信用卡内嵌支付获取卡号
如何 实现再zencart1.55版本 checkout_payment页面一页提交支付功能 下载zencart模板安装,安装教程省略 再目录下includes/modules/payment编写好自 ...
- js根据输入的银行卡获取对应银行信息
引入 npm install bankcardinfo 案例 <view class="inputBorStyle"><text class="inpu ...
- Android扫描银行卡获取银行卡号
card.io开源的银行卡扫描的三方库真的是很好用啊. 首先需要在你的module的gradle的依赖文件中添加依赖 compile 'io.card:android-sdk:5.5.1' 2 清单文 ...
- Android 串口通讯 获取卡号
首先你的andoridstudio 需要配置ndk 环境 然后在去下载谷歌的的demo 下载地址 把这些直接复制到代码中 一般 jni C语言调用java 是指定包名调用的 所有android_se ...
- android 查找所有的串口,Android 串口通讯 获取卡号
首先你的andoridstudio 需要配置ndk 环境 然后在去下载谷歌的的demo 下载地址 把这些直接复制到代码中 一般 jni C语言调用java 是指定包名调用的 所有android_se ...
最新文章
- 独家 | 数据科学入门指南:新手如何步入数据科学领域?
- 沉浸式5G实景、AI+AR体验、机器人互动|5G+数智化展馆广州开幕
- JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
- 数说真相|46公里内,Uber更划算
- Java并发程序设计(十一)设计模式与并发之生产者-消费者模式
- python多线程写日志_python 应用logging多线程写多个log文件
- python用for循环求10的因数_python for循环练习(初级)
- SSL4MIS:医学图像半监督分割的Baselines
- GIS和RS里面的一些小问题
- PHP脚本调用systemctl,centos7之systemctl
- 程序相关概念及OS Linux发行版
- 一元线性回归(R语言)
- java服务安装(三):使用appassembler
- 运维简历怎么写项目描述_应届生没有工作经验该怎么写简历?
- 高等数学学习笔记——第六十一讲——空间曲线的弧长与曲率
- C++基于ATM的个人银行账户管理系统
- 西农大 Java 实验四 第三题
- Prompt-Learning for Fine-Grained Entity Typing
- 中国联通(广东省分公司)研发技术初面
- RFID标签的编码标准
热门文章
- pandas删除包含特定字符串所在的行
- 扇贝python编程课_扇贝编程app下载-扇贝编程手机版python「附如何设置自由职业」 - 超好玩...
- Homekit智能家居DIY一WIFI智能插座
- Latex 偏导符号 ∂
- 计算机应用基础素材,计算机应用基础(Windows XP+Office 2003)、素材和习题答案-王向慧 计算机应用基础...
- 单应性矩阵的理解及求解3
- 如何设置ul中li的行距
- 关于zip包解压之后文件打开出现文件损坏的问题
- DELL 电脑 ubuntu20.04系统安装(最新最简版)
- CometOJ国庆欢乐赛 C两排房子 二分 D1 二分贪心 E贪心特判