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身份证扫描相关推荐

  1. Android身份证扫描拍照识别SDK

    Android身份证扫描拍照识别SDK 移动互联网是大趋势? 随着智能手机的硬件不断优化,移动互联网及应用大范围普及,互联网+各行各业,跨界.融合.创新,市场瞬息万变,有野心的企业和人.技术都在拼命的 ...

  2. Android 身份证扫描

    参考项目:https://github.com/czmc/zxingcard 使用的是腾讯的优图,地址:https://open.youtu.qq.com/ 使用此项目请先申请优图appid等字段 / ...

  3. OCR--苹果ios安卓android身份证拍照扫描识别sdk

    一.ios安卓android身份证拍照扫描识别sdk应用背景 这些年,随着移动互联网的的发展,越来越多的企业都推出了自己的移动APP,这些APP多数都涉及到个人身份证信息的输入认证(即实名认证),如果 ...

  4. Android拍照扫描识别身份证信息SDK

    Android拍照扫描识别身份证信息SDK 移动互联网是大趋势? 随着智能手机的硬件不断优化,移动互联网及应用大范围普及,互联网+各行各业,跨界.融合.创新,市场瞬息万变,有野心的企业和人.技术都在拼 ...

  5. Android手机扫描识别银行卡技术

    Android手机扫描识别银行卡技术 1.Android手机扫描识别银行卡技术背景分析 手机支付.网络支付已经非常成熟,消费者已经习惯了使用手机支付宝进行支付,用手机银行进行消费和转账.但是,整个线上 ...

  6. Camera详解(附身份证扫描示例)

    Camera是什么 Camera官方说明The Camera class is used toset image capture settings, start/stop preview, snap ...

  7. 身份证扫描识别OCR技术的应用场景

    关键词:身份证扫描识别,证件识别,身份证识别,二代身份证识别,手机移动端证件识别 目前来讲:智能OCR识别技术有关于身份证扫描识别OCR技术的服务主要有两种部署模式:身份证扫描识别OCR技术和云端/服 ...

  8. 原生APP集成身份证扫描拍照识别SDK

    原生APP集成身份证扫描拍照识别SDK 移动互联网是大趋势? 随着智能手机的硬件不断优化,移动互联网及应用大范围普及,互联网+各行各业,跨界.融合.创新,市场瞬息万变,有野心的企业和人.技术都在拼命的 ...

  9. 移动端二代身份证扫描识

     一.移动端二代身份证扫描识别应用背景 这些年,随着移动互联网的的发展,越来越多的企业都推出了自己的移动APP,这些APP多数都涉及到个人身份证信息的输入认证(即实名认证),如果手动去输入身份证号码和 ...

  10. 身份证扫描识别ocr技术

     一.身份证扫描OCR识别技术应用背景 这些年,随着移动互联网的的发展,越来越多的企业都推出了自己的移动APP,这些APP多数都涉及到个人身份证信息的输入认证(即实名认证),如果手动去输入身份证号码和 ...

最新文章

  1. postfix 遇到的问题
  2. Tomcat和myeclipse的相关操作以及myeclipse的激活方法
  3. java 微信 jssdk 分享朋友圈_微信JS-sdk分享到朋友圈无效
  4. Vue.js 学习笔记 二,一些输出指令
  5. Sass与Compress实战:第一章
  6. 循环buffer的实现_Go语言源码阅读之bytes.Buffer
  7. 局域网网络流量监控_【网络监控与安全】主要网络流量处理技术
  8. idea Lombok插件下载
  9. SUMO使用E2检测器获取信号交叉口车道信息和信号控制方案
  10. 2021-05-16
  11. WaterMark 1.0
  12. [hihocoder]1238 : Total Highway Distance
  13. SQL Server、MySQL知识点
  14. Java基础案例 | 第二弹(持续更新...xdm冲啊)
  15. python odoo pdf文件 位置获取
  16. 2023 年度 A 类学科竞赛项目清单
  17. Matter Project 入门 – 构建和运行照明应用程序示例
  18. Codeforces Round #549 (Div. 2) D. The Beatles
  19. 十多家大厂Android面试真题锦集干货整理,成功拿下大厂offer
  20. AnyProxy 原理及使用

热门文章

  1. python头像转卡通_用python将你的头像“卡通化”
  2. (后台)Openbravo如何实现业务事件监听处理
  3. ch10_ex32nbsp;荷兰国旗问题
  4. 以太网未识别的网络win10_win10以太网为什么无Internet未识别网络?
  5. 利用mic visual studio 2010 编译器执行wincap获取网络适配器的代码
  6. 计算机系统分别由,计算机系统由两部分组成它们分别是什么
  7. idea激活到2100年
  8. IDEA 2018 激活补丁 激活到2100年 ,最新版不用注册机
  9. 商业网站建设和运营的四度:Approachability、Usability、 Accessibility 和 Profitability...
  10. Mybatis与JPA的优缺点