Android身份证扫描
1.第一步我们先接入华为的仓库 maven {url 'http://developer.huawei.com/repo/'}
buildscript {repositories {google()jcenter()mavenCentral()maven {url 'http://developer.huawei.com/repo/'}}dependencies {classpath "com.android.tools.build:gradle:4.0.2"// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {google()jcenter()mavenCentral()maven {url 'http://developer.huawei.com/repo/'}}
}
第二步添加依赖
implementation 'com.huawei.hms:ml-computer-vision-icr:1.0.3.300'
// 引入身份证识别plugin包
implementation 'com.huawei.hms:ml-computer-card-icr-cn-plugin:1.0.3.315'
// 引入身份证识别模型包
implementation 'com.huawei.hms:ml-computer-card-icr-cn-model:1.0.3.315'
第三步在AndroidManifest.xml清单文件的manifest里加入华为机器学习模型。以及读写权限和相机权限。
<meta-dataandroid:name="com.huawei.hms.ml.DEPENDENCY"android:value= "icr"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
第四步在xml文件夹下设置身份证正面和反面两张图片用来点击扫描
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:textSize="@dimen/dp_20"android:textColor="#000"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="实名认证"android:layout_gravity="center"/><ImageViewandroid:layout_gravity="center"android:id="@+id/zheng"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/id_card_on"/><ImageViewandroid:layout_gravity="center"android:id="@+id/fan"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/id_card_under"/><Buttonandroid:id="@+id/put"android:background="#FE657A"android:text="上传"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"/></LinearLayout>
第五步在Activity或Fragment里面进行实现
//身份证人像面点击事件zheng.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//把身份证正面扫描赋值为trueb=true;startCaptureActivity(idCallback, true, false);}});//身份证国徽面点击事件fan.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {//把身份证反面扫描赋值为falseb=false;startCaptureActivity(idCallback, false, false);}});
//识别参数private void startCaptureActivity(MLCnIcrCapture.CallBack callback, boolean isFront, boolean isRemote) {MLCnIcrCaptureConfig config = new MLCnIcrCaptureConfig.Factory()// 设置识别身份证的正反面。.setFront(isFront)// 设置是否使用云侧能力进行识别。.setRemote(isRemote).create();MLCnIcrCapture icrCapture = MLCnIcrCaptureFactory.getInstance().getIcrCapture(config);icrCapture.capture(callback, this);}
//成功回调private MLCnIcrCapture.CallBack idCallback=new MLCnIcrCapture.CallBack() {@Override// 这个回调里面有参数可以点进去看看身份证图片就是Bitmappublic void onSuccess(MLCnIcrCaptureResult idCardResult) {//这里toast一下看是否可以显示自己名字Toast.makeText(Authenticationactivity.this,idCardResult.name+"", Toast.LENGTH_SHORT).show();//这里判断为true就是人像面false就是国徽面if (b==true){//这个eques判断可以不看,因为我的项目接口性别是int类型所以判断。if (idCardResult.sex.equals("女")){sex=2;}else {sex=1;}//直接设置上zheng.setImageBitmap(idCardResult.cardBitmap);}else if (b==false){//这个是国徽面,同上。fan.setImageBitmap(idCardResult.cardBitmap);}// //点击上传身份证图片
// put.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// Intent intent = new Intent(Authenticationactivity.this, AffirmActivity.class);
// intent.putExtra("actualName1",idCardResult.name);
// intent.putExtra("sex1",sex);
// intent.putExtra("birthday1",idCardResult.birthday);
// intent.putExtra("address1",idCardResult.address);
// intent.putExtra("idNumber1",idCardResult.idNum);
// intent.putExtra("office1",idCardResult.authority);
// intent.putExtra("expireDate1",idCardResult.validDate);
// startActivity(intent);
// }
// });}@Overridepublic void onCanceled() {// 用户取消处理。Toast.makeText(Authenticationactivity.this, "您已经取消认证", Toast.LENGTH_SHORT).show();}@Overridepublic void onFailure(int i, Bitmap bitmap) {// 识别异常处理。}@Overridepublic void onDenied() {// 相机不支持等场景处理。}};
以上就可以了
Android身份证扫描相关推荐
- Android身份证扫描拍照识别SDK
Android身份证扫描拍照识别SDK 移动互联网是大趋势? 随着智能手机的硬件不断优化,移动互联网及应用大范围普及,互联网+各行各业,跨界.融合.创新,市场瞬息万变,有野心的企业和人.技术都在拼命的 ...
- Android 身份证扫描
参考项目:https://github.com/czmc/zxingcard 使用的是腾讯的优图,地址:https://open.youtu.qq.com/ 使用此项目请先申请优图appid等字段 / ...
- OCR--苹果ios安卓android身份证拍照扫描识别sdk
一.ios安卓android身份证拍照扫描识别sdk应用背景 这些年,随着移动互联网的的发展,越来越多的企业都推出了自己的移动APP,这些APP多数都涉及到个人身份证信息的输入认证(即实名认证),如果 ...
- Android拍照扫描识别身份证信息SDK
Android拍照扫描识别身份证信息SDK 移动互联网是大趋势? 随着智能手机的硬件不断优化,移动互联网及应用大范围普及,互联网+各行各业,跨界.融合.创新,市场瞬息万变,有野心的企业和人.技术都在拼 ...
- Android手机扫描识别银行卡技术
Android手机扫描识别银行卡技术 1.Android手机扫描识别银行卡技术背景分析 手机支付.网络支付已经非常成熟,消费者已经习惯了使用手机支付宝进行支付,用手机银行进行消费和转账.但是,整个线上 ...
- Camera详解(附身份证扫描示例)
Camera是什么 Camera官方说明The Camera class is used toset image capture settings, start/stop preview, snap ...
- 身份证扫描识别OCR技术的应用场景
关键词:身份证扫描识别,证件识别,身份证识别,二代身份证识别,手机移动端证件识别 目前来讲:智能OCR识别技术有关于身份证扫描识别OCR技术的服务主要有两种部署模式:身份证扫描识别OCR技术和云端/服 ...
- 原生APP集成身份证扫描拍照识别SDK
原生APP集成身份证扫描拍照识别SDK 移动互联网是大趋势? 随着智能手机的硬件不断优化,移动互联网及应用大范围普及,互联网+各行各业,跨界.融合.创新,市场瞬息万变,有野心的企业和人.技术都在拼命的 ...
- 移动端二代身份证扫描识
一.移动端二代身份证扫描识别应用背景 这些年,随着移动互联网的的发展,越来越多的企业都推出了自己的移动APP,这些APP多数都涉及到个人身份证信息的输入认证(即实名认证),如果手动去输入身份证号码和 ...
- 身份证扫描识别ocr技术
一.身份证扫描OCR识别技术应用背景 这些年,随着移动互联网的的发展,越来越多的企业都推出了自己的移动APP,这些APP多数都涉及到个人身份证信息的输入认证(即实名认证),如果手动去输入身份证号码和 ...
最新文章
- ibatis轻松入门
- JavaScript的undefined
- c++ array方法
- 2019-03-5-算法-进化(最长公共前缀)
- PLSQL 安装+配置( Oracle数据库连接工具 )
- python预定义_【Python】python类中方法的预定义
- codeforces 675E E. Trains and Statistic(线段树+dp)
- JS删除数组里的某一个元素
- 架构中的技术性解决难题之解决篇
- 爸爸和儿子的故事带你理解java线程
- sfidsk创建可启动分区问题
- Assetbundle coustomerScripts
- VS2017_Reshaper
- 转行3D建模,C4D与3ds Max哪个更好入门就业
- PUN☀️二、局域网的搭建
- java中小数位数的限制,Java中限制小数位数有关问题
- 计算机应用后期影音制作,影音制作工具(ImTOO Movie Maker)
- 【房间墙上凿个洞,看你在干嘛~】安全攻防内网渗透-绕过防火墙和安全检测,搭建DNS隐蔽隧道
- php使用最新qq企业邮箱smtp服务发送邮件需要开启ssl、开启客户端专用密码
- 流式布局FlowLayout使用