生态文档
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 5.5KB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  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](#demo)。
  7. - Ocr SDK 同时需要依赖 [**公共组件(common-release.aar)**](#demo),同样也是以 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. ###
  45. <span id='shili'></span>
  46. # 接入示例
  47. 快速调用:
  48. ```
  49. # 在MainActivity中单击某个按钮的代码逻辑
  50. Credential cert=new Credential();
  51. cert.setPassword("xxxx");
  52. cert.setUserCode("xxxx");
  53. cert.setUrl("xxxx");
  54. cert.setSysName("xxxx");
  55. OcrSDK sdk = OcrSDK.getInstance();
  56. sdk.init(OcrDemoActivity.this, credential,new OcrSDK.OcrLoginListener() {
  57. @Override
  58. public void onLoginSuccess() { //登录成功,拉起 SDK 页面
  59. OcrSDK.getInstance().startIdCardFrontActivity( new OcrSDK.IdCardFrontResultListener() {
  60. @Override
  61. public void onFailed(String errorCode, String errorMsg) {
  62. //txtresult.setText("失败:错误码"+errorCode+";错误信息"+errorMsg);
  63. }
  64. @Override
  65. public void onFinish(OcrSDK.IdCardFrontData result) {
  66. int i=1;
  67. //txtresult.setText("操作完成:识别结果"+result.isSuccess()+";相似分数"+result.getScore());
  68. }
  69. });
  70. }
  71. @Override
  72. public void onLoginFailed(String errorCode, String errorMsg) {
  73. //txtresult.setText("失败:错误码"+errorCode+";错误信息"+errorMsg);
  74. }
  75. });
  76. ```
  77. <span id='demo'></span>
  78. [完整demo和sdk下载](./demo/ocrdemo.rar) (跳转后点击查看**原始文件**)
  79. # 接口详细说明
  80. ## SDK 接口调用方法
  81. SDK 代码调用的入口为 `OcrSDK` 这个类。
  82. ```
  83. public class OcrSDK {
  84. /**
  85. * 该类为一个单例,需要先获得单例对象再进行后续操作
  86. */
  87. public static OcrSDK getInstance(){
  88. // ...
  89. }
  90. /**
  91. * 在使用SDK前先初始化,
  92. * 传入证书key `credential`,
  93. * 由 OcrLoginListener返回是否初始化SDK成功
  94. */
  95. public void init(Context context,Credential credential, final OcrLoginListener loginListerner){
  96. // ...
  97. }
  98. /**
  99. * 登录成功后,调用此函数拉起sdk页面
  100. * 打开身份证正面识别
  101. * @param resultListener 用于返回识别结果
  102. */
  103. public void startIdCardFrontActivity(IdCardFrontResultListener resultListener) {
  104. // ...
  105. }
  106. /**
  107. * 登录成功后,调用此函数拉起sdk页面
  108. * 打开身份证背面识别
  109. * @param resultListener 用于返回识别结果
  110. */
  111. public void startIdCardBackActivity(IdCardBackResultListener resultListener) {
  112. // ...
  113. }
  114. /**
  115. * 登录成功后,调用此函数拉起sdk页面
  116. * 打开银行卡识别
  117. * @param resultListener 用于返回识别结果
  118. */
  119. public void startBankCardActivity(BankCardResultListener resultListener) {
  120. // ...
  121. }
  122. /**
  123. * 登录回调接口
  124. */
  125. public interface OcrLoginListener {
  126. void onLoginSuccess();
  127. void onLoginFailed(String errorCode, String errorMsg);
  128. }
  129. /**
  130. * Ocr结果回调接口
  131. */
  132. public interface IdCardFrontResultListener {
  133. /**
  134. * @RARAM exidCardResult SDK返回的识别结果的错误码
  135. * @RARAM exidCardResult SDK返回的识别结果的错误信息
  136. */
  137. void onFailed(String errorCode, String errorMsg);
  138. void onFinish(IdCardFrontData result);
  139. }
  140. public interface IdCardBackResultListener {
  141. /**
  142. * @RARAM exidCardResult SDK返回的识别结果的错误码
  143. * @RARAM exidCardResult SDK返回的识别结果的错误信息
  144. */
  145. void onFailed(String errorCode, String errorMsg);
  146. void onFinish(IdCardBackData result);
  147. }
  148. public interface BankCardResultListener {
  149. /**
  150. * @RARAM exidCardResult SDK返回的识别结果的错误码
  151. * @RARAM exidCardResult SDK返回的识别结果的错误信息
  152. */
  153. void onFailed(String errorCode, String errorMsg);
  154. void onFinish(BankCardData result);
  155. }
  156. ```
  157. ## 接入示例
  158. 关于接口调用的示例可参考 [接入示例](#shili)