身份认证

2024.11.20 10:20:47

    身份证采集

    兼容性

    条目 说明
    适配版本 minSdkVersion 16 及以上版本
    cpu 架构 内部提供了 armeabi-v7a 和 arm64-v8a 两种 so ,对于不兼容 arm 的 x86 机型不适配

    资源引入

    远程仓库依赖(推荐)

    从 1.0.1 版本开始,提供远程依赖的方式,本地依赖的方式逐步淘汰。本地依赖集成替换为远程依赖请先去除干净本地包,避免重复依赖冲突

    确认 Project 根目录的 build.gradle 中配置了 mavenCentral 支持

    buildscript {
        repositories {
            mavenCentral()
        }
        ...
    }
    
    allprojects {
        repositories {
            mavenCentral()
        }
    }
    

    在对应 module 的 build.gradle 中添加依赖

    implementation 'io.github.yidun:ocr:1.1.4'
    

    本地手动依赖

    获取 SDK

    从易盾官网下载身份认证ocr sdk 的 aar 包 包地址

    添加 aar 包依赖

    将获取到的 aar 文件拷贝到对应 module 的 libs 文件夹下(如没有该目录需新建),然后在 build.gradle 文件中增加如下代码

    android{
        repositories {
            flatDir {
                dirs 'libs'
            }
        } 
    }    
    
    dependencies {
         implementation(name: 'ocr-sdk', ext: 'aar') //aar名称和版本号以下载下来的最新版为准
         implementation(name: 'openCVLibrary343-release', ext: 'aar')  // 添加对OpenCV库的依赖   
    }
    

    如果同时使用易盾的活体检测和身份证OCR SDK,请务必先引用OCR SDK; 遇到so冲突,请用以下方式解决

    packagingOptions {
            pickFirst  'lib/arm64-v8a/libc++_shared.so'
            pickFirst  'lib/armeabi-v7a/libc++_shared.so'
            pickFirst  'lib/arm64-v8a/libMNN.so'
            pickFirst  'lib/armeabi-v7a/libMNN.so'
            pickFirst  'lib/arm64-v8a/libopencv_java3.so'
            pickFirst  'lib/armeabi-v7a/libopencv_java3.so'
        }
    

    各种配置

    权限配置

    SDK 依赖如下权限

    <uses-permission android:name="android.permission.CAMERA" />
    

    CAMERA 权限是隐私权限,Android 6.0 及以上需要动态申请。使用前务必先动态申请权限

    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 0);
    

    混淆配置

    在 proguard-rules.pro 文件中添加如下混淆规则

    -keeppackagenames com.netease.nis.ocr
    keep class com.netease.nis.**{*;}
    -dontwarn com.netease.nis.ocr.**
    

    使用说明

    1. 在xml布局文件中使用OCR扫描预览View 注意: 预览宽高不要随意设置,请遵守大部分相机支持的预览宽高比,3:4或9:16

    如下是个简单示例:

    <com.netease.nis.ocr.OcrScanView
     	android:id="@+id/ocr_view"
     	android:layout_width="match_parent"
     	android:layout_height="match_parent"
     	android:layout_gravity="center_horizontal" />
    
    1. 获取AliveDetector对象,进行初始化 将前面布局中获取到的相机预览View以及从易盾官网申请的业务id传给init()接口进行初始化
    OcrScanner.getInstance().init(applicationContext, ocr_view, "your_business_id")
    

    检测国徽面

    OcrScanner.getInstance().setScanType(OcrScanner.SCAN_TYPE_NATIONAL_EMBLEM)
    

    检测头像面

    OcrScanner.getInstance().setScanType(OcrScanner.SCAN_TYPE_AVATAR)
    
    1. 设置回调监听器,在监听器中根据相应回调做自己的业务处理
     OcrScanner.getInstance().setCropListener(object : OcrCropListener {
                override fun onSuccess(picturePath: String?) {
                    Log.d(TAG, "保存的图片路径为$picturePath")
                }
    
                override fun onError(code: Int, msg: String?) {
                    showToast("onError:$msg")
                    Log.e(TAG, "ocr扫描出错,原因:$msg")
                }
    
                override fun onOverTime() {
                    showToast("检测超时")
                    Log.e(TAG, "ocr扫描检测超时")
                }
       })
    
    1. 开始/停止检测
    OcrScanner.getInstance().start();
    OcrScanner.getInstance().stop();
    
    在线咨询 电话咨询:95163223 免费试用