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

4 年之前
3 年之前
4 年之前
4 年之前
4 年之前
4 年之前
4 年之前
4 年之前
4 年之前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  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. - 本 SDK 提供多个入口方法,其中 `startTakePhotoActivity` 仅返回拍照后的图片路径,其它入口方法则会返回识别后的数据。请根据具体业务选择入口方法。
  9. <span id='yilai'></span>
  10. ### 添加依赖
  11. 将提供的 AAR 文件加入到 App 工程的 libs 文件夹内,并且在 build.gradle 中添加下面的配置。
  12. ```
  13. android{
  14. //...
  15. repositories {
  16. flatDir {
  17. dirs 'libs' //this way we can find the .aar file in libs folder
  18. }
  19. }
  20. }
  21. //添加依赖
  22. dependencies {
  23. // json依赖
  24. implementation 'com.alibaba:fastjson:1.2.73'
  25. // okHttp依赖
  26. implementation 'com.squareup.okhttp3:okhttp:4.0.0'
  27. // 公共组件
  28. implementation(name: 'common-release', ext: 'aar')
  29. // ocr
  30. implementation(name: 'ocrui-release', ext: 'aar')
  31. }
  32. ```
  33. ### 权限检测
  34. 在AndroidManifest.xml中添加
  35. ```
  36. <uses-permission android:name="android.permission.INTERNET" />
  37. <uses-permission android:name="android.permission.CAMERA"/>
  38. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  39. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  40. ```
  41. - **Android 6.0 以上系统**
  42. SDK 需要用到以上权限,对 Android 6.0 以上的系统 SDK 会做权限的运行时检测。
  43. - **Android 6.0 以下系统**
  44. -由于 Android 6.0 以下系统 Android 并没有运行时权限检测,建议调用方在拉起 SDK 前,对权限进行检测。-
  45. ###
  46. <span id='shili'></span>
  47. # 接入示例
  48. 快速调用:
  49. ```
  50. # 在MainActivity中单击某个按钮的代码逻辑
  51. Credential cert=new Credential();
  52. cert.setPassword("xxxx");
  53. cert.setUserCode("xxxx");
  54. cert.setUrl("xxxx");
  55. cert.setSysName("xxxx");
  56. OcrSDK sdk = OcrSDK.getInstance();
  57. sdk.init(OcrDemoActivity.this, credential,new OcrSDK.OcrLoginListener() {
  58. @Override
  59. public void onLoginSuccess() { //登录成功,拉起 SDK 页面
  60. OcrSDK.getInstance().startIdCardFrontActivity( new OcrSDK.IdCardFrontResultListener() {
  61. @Override
  62. public void onFailed(String errorCode, String errorMsg) {
  63. //txtresult.setText("失败:错误码"+errorCode+";错误信息"+errorMsg);
  64. }
  65. @Override
  66. public void onFinish(OcrSDK.IdCardFrontData result) {
  67. int i=1;
  68. //txtresult.setText("操作完成:识别结果"+result.isSuccess()+";相似分数"+result.getScore());
  69. }
  70. });
  71. }
  72. @Override
  73. public void onLoginFailed(String errorCode, String errorMsg) {
  74. //txtresult.setText("失败:错误码"+errorCode+";错误信息"+errorMsg);
  75. }
  76. });
  77. ```
  78. <span id='demo'></span>
  79. [完整demo和sdk下载](./demo/ocrdemo.zip) (跳转后点击查看**原始文件**)
  80. # 接口详细说明
  81. ## SDK 接口调用方法
  82. SDK 代码调用的入口为 `OcrSDK` 这个类。
  83. ```
  84. public class OcrSDK {
  85. /**
  86. * 该类为一个单例,需要先获得单例对象再进行后续操作
  87. */
  88. public static OcrSDK getInstance(){
  89. // ...
  90. }
  91. /**
  92. * 在使用SDK前先初始化,
  93. * 传入证书key `credential`,
  94. * 由 OcrLoginListener返回是否初始化SDK成功
  95. */
  96. public void init(Context context,Credential credential, final OcrLoginListener loginListerner){
  97. // ...
  98. }
  99. /**
  100. * 登录成功后,调用此函数拉起sdk页面
  101. * 打开拍摄页面,传入证件类型ocrType
  102. *
  103. * @param resultListener 返回拍摄图片的路径
  104. */
  105. public void startTakePhotoActivity(TakePhotoResultListener resultListener,OcrType ocrType) {
  106. // ...
  107. }
  108. /**
  109. * 登录成功后,调用此函数拉起sdk页面
  110. * 打开身份证正面识别
  111. * @param resultListener 用于返回识别结果
  112. */
  113. public void startIdCardFrontActivity(IdCardFrontResultListener resultListener) {
  114. // ...
  115. }
  116. /**
  117. * 登录成功后,调用此函数拉起sdk页面
  118. * 打开身份证背面识别
  119. * @param resultListener 用于返回识别结果
  120. */
  121. public void startIdCardBackActivity(IdCardBackResultListener resultListener) {
  122. // ...
  123. }
  124. /**
  125. * 登录成功后,调用此函数拉起sdk页面
  126. * 打开银行卡识别
  127. * @param resultListener 用于返回识别结果
  128. */
  129. public void startBankCardActivity(BankCardResultListener resultListener) {
  130. // ...
  131. }
  132. /**
  133. * 登录回调接口
  134. */
  135. public interface OcrLoginListener {
  136. void onLoginSuccess();
  137. void onLoginFailed(String errorCode, String errorMsg);
  138. }
  139. /**
  140. * Ocr结果回调接口
  141. */
  142. public interface TakePhotoResultListener {
  143. /**
  144. * @RARAM exidCardResult SDK返回的识别结果的错误码
  145. * @RARAM exidCardResult SDK返回的识别结果的错误信息
  146. */
  147. void onFailed(String errorCode, String errorMsg);
  148. void onFinish(String result);
  149. }
  150. /**
  151. * Ocr结果回调接口
  152. */
  153. public interface IdCardFrontResultListener {
  154. /**
  155. * @RARAM exidCardResult SDK返回的识别结果的错误码
  156. * @RARAM exidCardResult SDK返回的识别结果的错误信息
  157. */
  158. void onFailed(String errorCode, String errorMsg);
  159. void onFinish(IdCardFrontData result);
  160. }
  161. /**
  162. * Ocr结果回调接口
  163. */
  164. public interface IdCardBackResultListener {
  165. /**
  166. * @RARAM exidCardResult SDK返回的识别结果的错误码
  167. * @RARAM exidCardResult SDK返回的识别结果的错误信息
  168. */
  169. void onFailed(String errorCode, String errorMsg);
  170. void onFinish(IdCardBackData result);
  171. }
  172. /**
  173. * Ocr结果回调接口
  174. */
  175. public interface BankCardResultListener {
  176. /**
  177. * @RARAM exidCardResult SDK返回的识别结果的错误码
  178. * @RARAM exidCardResult SDK返回的识别结果的错误信息
  179. */
  180. void onFailed(String errorCode, String errorMsg);
  181. void onFinish(BankCardData result);
  182. }
  183. ```
  184. ## 接入示例
  185. 关于接口调用的示例可参考 [接入示例](#shili)