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