溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android中如何識別二代身份證

發(fā)布時(shí)間:2022-04-11 16:26:28 來源:億速云 閱讀:168 作者:iii 欄目:編程語言

這篇文章主要介紹“Android中如何識別二代身份證”,在日常操作中,相信很多人在Android中如何識別二代身份證問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android中如何識別二代身份證”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

開發(fā)前準(zhǔn)備

android studio 安裝

在項(xiàng)目級gradle里添加華為maven倉

??打開AndroidStudio項(xiàng)目級build.gradle文件

Android中如何識別二代身份證

??增量添加如下maven地址:

buildscript {
   repositories {        
       maven {url 'http://developer.huawei.com/repo/'}
   }    
}
allprojects {
   repositories {      
       maven { url 'http://developer.huawei.com/repo/'}
   }
}

在應(yīng)用級的build.gradle里面加上SDK依賴

Android中如何識別二代身份證

dependencies{  
 // 引入基礎(chǔ)SDK
 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文件里面增量添加模型自動下載

??要使應(yīng)用程序能夠在用戶從華為應(yīng)用市場安裝您的應(yīng)用程序后,自動將最新的機(jī)器學(xué)習(xí)模型更新到用戶設(shè)備,請將以下語句添加到該應(yīng)用程序的AndroidManifest.xml文件中:

<manifest
   ...
   <meta-data              
       android:name="com.huawei.hms.ml.DEPENDENCY"  
       android:value= "icr"/>
       <!--If multiple models are required,set the parameter as follows:        
       android:value="object,ocr,face,label,icr,bcr,imgseg"-->  
   ...
</manifest>

在AndroidManifest.xml文件里面申請相機(jī)、訪問網(wǎng)絡(luò)和存儲權(quán)限

<!--相機(jī)權(quán)限-->
<uses-permission android:name="android.permission.CAMERA" />
<!--使用網(wǎng)絡(luò)權(quán)限-->
<uses-permission android:name="android.permission.INTERNET" />
<!--寫權(quán)限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--讀權(quán)限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

代碼開發(fā)關(guān)鍵步驟

&emsp;&emsp;在開發(fā)時(shí)可以通過三種方式進(jìn)行集成開發(fā),分別為:使用識別插件進(jìn)行視頻流身份證識別、設(shè)備側(cè)身份證識別以及云側(cè)身份證識別。在這里我們主要介紹使用識別插件進(jìn)行視頻流身份證識別的開發(fā)步驟,如果大家對另外兩種集成方式感興趣,可以參照華為開發(fā)者聯(lián)盟開發(fā)步驟: https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/ml-icr-dev-4

創(chuàng)建識別結(jié)果回調(diào)函數(shù)

??識別結(jié)果回調(diào)函數(shù),重載onSuccess, onCanceled, onFailure, onDenied四個(gè)方法;onSuccess 表示識別成功,MLCnIcrCaptureResult為識別返回結(jié)果,onCanceled 表示用戶取消,onFailure 表示識別失敗,onDenied 表示相機(jī)不可用等場景。

private MLCnIcrCapture.Callback idCallback = new MLCnIcrCapture.Callback() {
   @Override
   public void onSuccess(MLCnIcrCaptureResult idCardResult){
       // 識別成功處理。
   }  
   @Override
   public void onCanceled(){
       // 用戶取消處理。
   }  
   // 識別不到任何文字信息或識別過程發(fā)生系統(tǒng)異常的回調(diào)方法。
   // retCode:錯(cuò)誤碼。
   // bitmap:檢測失敗的身份證圖片。
   @Override
   public void onFailure(int retCode, Bitmap bitmap){
       // 識別異常處理。
   }
   @Override
   public void onDenied(){
       // 相機(jī)不支持等場景處理。
   }  
}

設(shè)置識別參數(shù)

??設(shè)置識別參數(shù),調(diào)用識別器capture接口進(jìn)行識別,識別結(jié)果會通過步驟1的回調(diào)函數(shù)返回。

private void startCaptureActivity(MLCnIcrCapture.Callback callback, boolean isFront, boolean isRemote) {
   MLCnIcrCaptureConfig config = new MLCnIcrCaptureConfig.Factory()
       // 設(shè)置識別身份證的正反面。
       // true:正面。
       // false:反面。
       .setFront(true)
       // 設(shè)置是否使用云側(cè)能力進(jìn)行識別。
       // true:云側(cè)。
       // false:端側(cè)。
       .setRemote(false)
       .create();
   MLCnIcrCapture icrCapture = MLCnIcrCaptureFactory.getInstance().getIcrCapture(config);
   icrCapture.capture(callback, this);
}

實(shí)現(xiàn)身份識別

??在檢測按鈕的回調(diào)中,調(diào)用步驟2中定義的方法,實(shí)現(xiàn)身份證識別。

@Override
public void onClick(View v) {
   switch (v.getId()) {
       // 識別正面按鈕。
       case R.id.IDCard_image_front:
           startCaptureActivity(idCallback, true, false);
           break;
       // 識別背面按鈕。
       case R.id.IDCard_image_back:
           startCaptureActivity(idCallBack, false, false);
           break;
       default:
           break;
   }
}

到此,關(guān)于“Android中如何識別二代身份證”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI