[已废弃,见新文档](./安卓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)