生态文档
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 。
  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. ###
  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. [完整demo下载](./demo/ocrdemo.rar) (跳转后点击查看**原始文件**)
  78. # 接口详细说明
  79. ## SDK 接口调用方法
  80. SDK 代码调用的入口为 `OcrSDK` 这个类。
  81. ```
  82. public class OcrSDK {
  83. /**
  84. * 该类为一个单例,需要先获得单例对象再进行后续操作
  85. */
  86. public static OcrSDK getInstance(){
  87. // ...
  88. }
  89. /**
  90. * 在使用SDK前先初始化,
  91. * 传入证书key `credential`,
  92. * 由 OcrLoginListener返回是否初始化SDK成功
  93. */
  94. public void init(Context context,Credential credential, final OcrLoginListener loginListerner){
  95. // ...
  96. }
  97. /**
  98. * 登录成功后,调用此函数拉起sdk页面
  99. * 打开身份证正面识别
  100. * @param resultListener 用于返回识别结果
  101. */
  102. public void startIdCardFrontActivity(IdCardFrontResultListener resultListener) {
  103. // ...
  104. }
  105. /**
  106. * 登录成功后,调用此函数拉起sdk页面
  107. * 打开身份证背面识别
  108. * @param resultListener 用于返回识别结果
  109. */
  110. public void startIdCardBackActivity(IdCardBackResultListener resultListener) {
  111. // ...
  112. }
  113. /**
  114. * 登录成功后,调用此函数拉起sdk页面
  115. * 打开银行卡识别
  116. * @param resultListener 用于返回识别结果
  117. */
  118. public void startBankCardActivity(BankCardResultListener resultListener) {
  119. // ...
  120. }
  121. /**
  122. * 登录回调接口
  123. */
  124. public interface OcrLoginListener {
  125. void onLoginSuccess();
  126. void onLoginFailed(String errorCode, String errorMsg);
  127. }
  128. /**
  129. * Ocr结果回调接口
  130. */
  131. public interface IdCardFrontResultListener {
  132. /**
  133. * @RARAM exidCardResult SDK返回的识别结果的错误码
  134. * @RARAM exidCardResult SDK返回的识别结果的错误信息
  135. */
  136. void onFailed(String errorCode, String errorMsg);
  137. void onFinish(IdCardFrontData result);
  138. }
  139. public interface IdCardBackResultListener {
  140. /**
  141. * @RARAM exidCardResult SDK返回的识别结果的错误码
  142. * @RARAM exidCardResult SDK返回的识别结果的错误信息
  143. */
  144. void onFailed(String errorCode, String errorMsg);
  145. void onFinish(IdCardBackData result);
  146. }
  147. public interface BankCardResultListener {
  148. /**
  149. * @RARAM exidCardResult SDK返回的识别结果的错误码
  150. * @RARAM exidCardResult SDK返回的识别结果的错误信息
  151. */
  152. void onFailed(String errorCode, String errorMsg);
  153. void onFinish(BankCardData result);
  154. }
  155. ```
  156. ## 接入示例
  157. 关于接口调用的示例可参考 [接入示例](#shili)