生态文档
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

安卓ocr接入.md 4.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. # 配置流程
  2. ## 接入配置
  3. ### 注意事项
  4. - Ocr SDK 最低支持 Android 4.0 以上版本 API LEVEL 16。
  5. - CPU 架构支持 armeabi,arm64-v8a,armeabi-v7a,x86
  6. - Ocr SDK 将以 AAR 文件的形式提供,ocrui-release.aar 。
  7. - Ocr SDK 同时需要依赖**公共组件(common-release.aar)**,同样也是以 AAR 文件的形式提供,详情请参见 [添加依赖](#yilai)。
  8. <span id='yilai'></span>
  9. ### 添加依赖
  10. 将提供的 AAR 文件加入到 App 工程的 libs 文件夹内,并且在 build.gradle 中添加下面的配置。
  11. ```
  12. android{
  13. //...
  14. repositories {
  15. flatDir {
  16. dirs 'libs' //this way we can find the .aar file in libs folder
  17. }
  18. }
  19. }
  20. //添加依赖
  21. dependencies {
  22. // json依赖
  23. implementation 'com.alibaba:fastjson:1.2.73'
  24. // okHttp依赖
  25. implementation 'com.squareup.okhttp3:okhttp:4.0.0'
  26. // 公共组件
  27. implementation(name: 'common-release', ext: 'aar')
  28. // ocr
  29. implementation(name: 'ocrui-release', ext: 'aar')
  30. }
  31. ```
  32. ### 权限检测
  33. 在AndroidManifest.xml中添加
  34. ```
  35. <uses-permission android:name="android.permission.INTERNET" />
  36. <uses-permission android:name="android.permission.CAMERA"/>
  37. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  38. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  39. ```
  40. - **Android 6.0 以上系统**
  41. SDK 需要用到以上权限,对 Android 6.0 以上的系统 SDK 会做权限的运行时检测。
  42. - **Android 6.0 以下系统**
  43. -由于 Android 6.0 以下系统 Android 并没有运行时权限检测,建议调用方在拉起 SDK 前,对权限进行检测。-
  44. <span id='shili'></span>
  45. # 接入示例
  46. 快速调用:
  47. ```
  48. # 在MainActivity中单击某个按钮的代码逻辑
  49. Credential cert=new Credential();
  50. cert.setPassword("xxxx");
  51. cert.setUserCode("xxxx");
  52. cert.setUrl("xxxx");
  53. cert.setSysName("xxxx");
  54. OcrSDK sdk = OcrSDK.getInstance();
  55. sdk.init(OcrDemoActivity.this, credential,new OcrSDK.OcrLoginListener() {
  56. @Override
  57. public void onLoginSuccess() { //登录成功,拉起 SDK 页面
  58. OcrSDK.getInstance().startIdCardFrontActivity( new OcrSDK.ResultListener<OcrSDK.IdCardFrontData>() {
  59. @Override
  60. public void onFailed(String errorCode, String errorMsg) {
  61. //txtresult.setText("失败:错误码"+errorCode+";错误信息"+errorMsg);
  62. }
  63. @Override
  64. public void onFinish(OcrSDK.IdCardFrontData result) {
  65. int i=1;
  66. //txtresult.setText("操作完成:识别结果"+result.isSuccess()+";相似分数"+result.getScore());
  67. }
  68. });
  69. }
  70. @Override
  71. public void onLoginFailed(String errorCode, String errorMsg) {
  72. //txtresult.setText("失败:错误码"+errorCode+";错误信息"+errorMsg);
  73. }
  74. });
  75. ```
  76. [完整demo下载](./demo/ocrdemo.rar) (跳转后点击查看**原始文件**)
  77. # 接口详细说明
  78. ## SDK 接口调用方法
  79. SDK 代码调用的入口为 `OcrSDK` 这个类。
  80. ```
  81. public class OcrSDK {
  82. /**
  83. * 该类为一个单例,需要先获得单例对象再进行后续操作
  84. */
  85. public static OcrSDK getInstance(){
  86. // ...
  87. }
  88. /**
  89. * 在使用SDK前先初始化,
  90. * 传入证书key `credential`,
  91. * 由 OcrLoginListener返回是否初始化SDK成功
  92. */
  93. public void init(Context context,Credential credential, final OcrLoginListener loginListerner){
  94. // ...
  95. }
  96. /**
  97. * 登录成功后,调用此函数拉起sdk页面
  98. * 打开身份证正面识别
  99. * @param resultListener 用于返回识别结果
  100. */
  101. public void startIdCardFrontActivity(ResultListener<IdCardFrontResult> resultListener) {
  102. // ...
  103. }
  104. /**
  105. * 登录成功后,调用此函数拉起sdk页面
  106. * 打开身份证背面识别
  107. * @param resultListener 用于返回识别结果
  108. */
  109. public void startIdCardBackActivity(ResultListener<IdCardBackResult> resultListener) {
  110. // ...
  111. }
  112. /**
  113. * 登录成功后,调用此函数拉起sdk页面
  114. * 打开银行卡识别
  115. * @param resultListener 用于返回识别结果
  116. */
  117. public void startBankCardActivity(ResultListener<BankCardResult> resultListener) {
  118. // ...
  119. }
  120. /**
  121. * 登录回调接口
  122. */
  123. public interface OcrLoginListener {
  124. void onLoginSuccess();
  125. void onLoginFailed(String errorCode, String errorMsg);
  126. }
  127. /**
  128. * Ocr结果回调接口
  129. */
  130. public interface ResultListener<T> {
  131. void onFailed(String errorCode, String errorMsg);
  132. void onFinish(T result);
  133. }
  134. ```
  135. ## 接入示例
  136. 关于接口调用的示例可参考 [接入示例](#shili)
  137. <span id='canshu'></span>