[已废弃,见新文档](./安卓Sdk接入文档.md)
# 配置流程
## 接入配置
### 注意事项
- 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` 仅返回拍照后的图片路径,其它入口方法则会返回识别后的数据。请根据具体业务选择入口方法。
### 添加依赖
将提供的 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中添加
```
```
- **Android 6.0 以上系统**
SDK 需要用到以上权限,对 Android 6.0 以上的系统 SDK 会做权限的运行时检测。
- **Android 6.0 以下系统**
-由于 Android 6.0 以下系统 Android 并没有运行时权限检测,建议调用方在拉起 SDK 前,对权限进行检测。-
###
# 接入示例
快速调用:
```
# 在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);
}
});
```
[完整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)