|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- # 配置流程
-
- ## 接入配置
-
- ### 注意事项
-
- - Ocr SDK 最低支持 Android 4.0 以上版本 API LEVEL 16。
- - CPU 架构支持 armeabi,arm64-v8a,armeabi-v7a,x86
- - Ocr SDK 将以 AAR 文件的形式提供, [ocrui-release.aar](#demo)。
- - Ocr SDK 同时需要依赖 [公共组件(common-release.aar)](#demo),同样也是以 AAR 文件的形式提供,详情请参见 [添加依赖](#yilai)。
- - 本 SDK 提供多个入口方法,其中 `startTakePhotoActivity` 仅返回拍照后的图片路径,其它入口方法则会返回识别后的数据。请根据具体业务选择入口方法。
-
-
- <span id='yilai'></span>
-
- ### 添加依赖
-
- 将提供的 AAR 文件加入到 App 工程的 libs 文件夹内,并且在 build.gradle 中添加下面的配置。
-
- ```
- android{
- //...
- repositories {
- flatDir {
- dirs 'libs' //this way we can find the .aar file in libs folder
- }
- }
- }
-
- //添加依赖
- dependencies {
- // json依赖
- implementation 'com.alibaba:fastjson:1.2.73'
- // okHttp依赖
- implementation 'com.squareup.okhttp3:okhttp:4.0.0'
- // 公共组件
- implementation(name: 'common-release', ext: 'aar')
- // ocr
- implementation(name: 'ocrui-release', ext: 'aar')
- }
-
- ```
- ### 权限检测
-
- 在AndroidManifest.xml中添加
- ```
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.CAMERA"/>
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
-
- ```
- - **Android 6.0 以上系统**
- SDK 需要用到以上权限,对 Android 6.0 以上的系统 SDK 会做权限的运行时检测。
- - **Android 6.0 以下系统**
- -由于 Android 6.0 以下系统 Android 并没有运行时权限检测,建议调用方在拉起 SDK 前,对权限进行检测。-
-
-
- ###
- <span id='shili'></span>
-
- # 接入示例
-
- 快速调用:
- ```
- # 在MainActivity中单击某个按钮的代码逻辑
-
- Credential cert=new Credential();
- cert.setPassword("xxxx");
- cert.setUserCode("xxxx");
- cert.setUrl("xxxx");
- cert.setSysName("xxxx");
-
- OcrSDK sdk = OcrSDK.getInstance();
-
- sdk.init(OcrDemoActivity.this, credential,new OcrSDK.OcrLoginListener() {
- @Override
- public void onLoginSuccess() { //登录成功,拉起 SDK 页面
- OcrSDK.getInstance().startIdCardFrontActivity( new OcrSDK.IdCardFrontResultListener() {
- @Override
- public void onFailed(String errorCode, String errorMsg) {
- //txtresult.setText("失败:错误码"+errorCode+";错误信息"+errorMsg);
- }
-
- @Override
- public void onFinish(OcrSDK.IdCardFrontData result) {
- int i=1;
- //txtresult.setText("操作完成:识别结果"+result.isSuccess()+";相似分数"+result.getScore());
- }
- });
- }
-
- @Override
- public void onLoginFailed(String errorCode, String errorMsg) {
- //txtresult.setText("失败:错误码"+errorCode+";错误信息"+errorMsg);
-
- }
- });
- ```
- <span id='demo'></span>
- [完整demo和sdk下载](./demo/ocrdemo.zip) (跳转后点击查看**原始文件**)
-
- # 接口详细说明
-
- ## SDK 接口调用方法
-
- SDK 代码调用的入口为 `OcrSDK` 这个类。
-
- ```
- public class OcrSDK {
- /**
- * 该类为一个单例,需要先获得单例对象再进行后续操作
- */
- public static OcrSDK getInstance(){
- // ...
- }
-
- /**
- * 在使用SDK前先初始化,
- * 传入证书key `credential`,
- * 由 OcrLoginListener返回是否初始化SDK成功
- */
- public void init(Context context,Credential credential, final OcrLoginListener loginListerner){
- // ...
- }
-
-
- /**
- * 登录成功后,调用此函数拉起sdk页面
- * 打开拍摄页面,传入证件类型ocrType
- *
- * @param resultListener 返回拍摄图片的路径
- */
- public void startTakePhotoActivity(TakePhotoResultListener resultListener,OcrType ocrType) {
- // ...
- }
-
- /**
- * 登录成功后,调用此函数拉起sdk页面
- * 打开身份证正面识别
- * @param resultListener 用于返回识别结果
- */
- public void startIdCardFrontActivity(IdCardFrontResultListener resultListener) {
- // ...
-
- }
-
- /**
- * 登录成功后,调用此函数拉起sdk页面
- * 打开身份证背面识别
- * @param resultListener 用于返回识别结果
- */
- public void startIdCardBackActivity(IdCardBackResultListener resultListener) {
- // ...
-
- }
- /**
- * 登录成功后,调用此函数拉起sdk页面
- * 打开银行卡识别
- * @param resultListener 用于返回识别结果
- */
- public void startBankCardActivity(BankCardResultListener resultListener) {
- // ...
-
- }
-
- /**
- * 登录回调接口
- */
- public interface OcrLoginListener {
- void onLoginSuccess();
-
- void onLoginFailed(String errorCode, String errorMsg);
- }
-
- /**
- * Ocr结果回调接口
- */
- public interface TakePhotoResultListener {
- /**
- * @RARAM exidCardResult SDK返回的识别结果的错误码
- * @RARAM exidCardResult SDK返回的识别结果的错误信息
- */
- void onFailed(String errorCode, String errorMsg);
-
- void onFinish(String result);
- }
- /**
- * Ocr结果回调接口
- */
- public interface IdCardFrontResultListener {
- /**
- * @RARAM exidCardResult SDK返回的识别结果的错误码
- * @RARAM exidCardResult SDK返回的识别结果的错误信息
- */
- void onFailed(String errorCode, String errorMsg);
-
- void onFinish(IdCardFrontData result);
- }
- /**
- * Ocr结果回调接口
- */
- public interface IdCardBackResultListener {
- /**
- * @RARAM exidCardResult SDK返回的识别结果的错误码
- * @RARAM exidCardResult SDK返回的识别结果的错误信息
- */
- void onFailed(String errorCode, String errorMsg);
-
- void onFinish(IdCardBackData result);
- }
- /**
- * Ocr结果回调接口
- */
- public interface BankCardResultListener {
- /**
- * @RARAM exidCardResult SDK返回的识别结果的错误码
- * @RARAM exidCardResult SDK返回的识别结果的错误信息
- */
- void onFailed(String errorCode, String errorMsg);
-
- void onFinish(BankCardData result);
- }
- ```
-
- ## 接入示例
- 关于接口调用的示例可参考 [接入示例](#shili)
-
-
|