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

安卓活体核身接入文档.md 5.2KB

преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
преди 4 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. # 配置流程
  2. ## 接入配置
  3. ### 注意事项
  4. - 人脸核身 SDK(Faceid)最低支持到 支持 Android 4.0 以上版本 API LEVEL 16。
  5. - 人脸核身 SDK 将以 AAR 文件的形式提供,即 faceidsdk.aar。
  6. - 人脸核身 SDK 同时需要依赖**公共组件(cepm_common.aar)**,同样也是以 AAR 文件的形式提供,详情请参见 [添加依赖](#yilai)。
  7. <span id='yilai'></span>
  8. ### 添加依赖
  9. 为人脸核身 SDK 添加依赖的方式:将提供的 AAR 文件加入到 App 工程的 libs 文件夹下面,并且在 build.gradle 中添加下面的配置。
  10. ```
  11. android{
  12. //...
  13. repositories {
  14. flatDir {
  15. dirs 'libs' //this way we can find the .aar file in libs folder
  16. }
  17. }
  18. }
  19. //添加依赖
  20. dependencies {
  21. // json依赖
  22. implementation 'com.alibaba:fastjson:1.2.73'
  23. // okHttp依赖
  24. implementation 'com.squareup.okhttp3:okhttp:4.0.0'
  25. // 加入sl4j安卓包,保证jar包里的日志可以正常打印
  26. implementation 'org.slf4j:slf4j-api:1.7.30
  27. implementation 'uk.uuid.slf4j:slf4j-android:1.7.30-0'
  28. // cepm_common.aar
  29. implementation(name: 'cepm_common', ext: 'aar')
  30. // 活体核身
  31. implementation(name: 'faceidsdk', 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.WRITE_EXTERNAL_STORAGE" />
  40. <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  41. ```
  42. - **Android 6.0 以上系统**
  43. SDK 需要用到网络/相机/录音/写入手机存储权限,对 Android 6.0 以上的系统会做权限的运行时检测。
  44. - **Android 6.0 以下系统**
  45. 由于 Android 6.0 以下系统 Android 并没有运行时权限检测,建议调用方在拉起 SDK 前,对网络/相机/麦克风/写入手机存储检测。
  46. ## 混淆配置
  47. <span id='shili'></span>
  48. # 接入示例
  49. 视频核身:
  50. ```
  51. # 在MainActivity中单击某个按钮的代码逻辑
  52. FaceidSDK.InputData inputdata=FaceidSDK.getInstance().new InputData(name.getText().toString(),idNum.getText().toString(), videoType);
  53. Credential credential = new Credential();
  54. credential.setSysName("XXXX").setPassword("XXXX").setUserCode("XXXX").setUrl("XXXX");
  55. FaceidSDK.getInstance().init(MainActivity.this, credential,new FaceidSDK.FaceidLoginListener() {
  56. @Override
  57. public void onLoginSuccess() { //登录成功,拉起 SDK 页面
  58. FaceidSDK.getInstance().startActivity(MainActivity.this,inputdata, new FaceidSDK.FaceidResultListener() {
  59. @Override
  60. public void onFailed(String errorCode, String errorMsg) {
  61. txtresult.setText("失败:错误码"+errorCode+";错误信息"+errorMsg);
  62. }
  63. @Override
  64. public void onFinish(FaceidSDK.OutputData result) {
  65. txtresult.setText("操作完成:识别结果"+result.isSuccess()+";相似分数"+result.getScore());
  66. }
  67. });
  68. }
  69. @Override
  70. public void onLoginFailed(String errorCode, String errorMsg) {
  71. }
  72. });
  73. ```
  74. # 接口详细说明
  75. ## SDK 接口调用方法
  76. SDK 代码调用的入口为 `FaceidSDK` 这个类。
  77. ```
  78. public class FaceidSDK {
  79. /**
  80. * 该类为一个单例,需要先获得单例对象再进行后续操作
  81. */
  82. public static FaceidSDK getInstance(){
  83. // ...
  84. }
  85. /**
  86. * 在使用SDK前先初始化,
  87. * 传入证书key `credential`,
  88. * 由 FaceidLoginListener返回是否初始化SDK成功
  89. */
  90. public void init(Context context,Credential credential, FaceidLoginListener loginListerner){
  91. // ...
  92. }
  93. /**
  94. * 初始化成功后,调用此函数拉起sdk页面。
  95. * 传入InputData(身份证,姓名,动作类型)
  96. * 由FaceidResultListener返回人脸核身结果。
  97. */
  98. public void startActivity(Context context, InputData data,FaceidResultListener resultListener) {
  99. // ...
  100. }
  101. /**
  102. * 初始化回调接口
  103. */
  104. public interface FaceidLoginListener {
  105. void onLoginSuccess();
  106. void onLoginFailed(String errorCode, String errorMsg);
  107. }
  108. /**
  109. * 人脸核身结果回调接口
  110. */
  111. public interface FaceidResultListener{
  112. void onFailed(String errorCode, String errorMsg);
  113. void onFinish(OutputData result);
  114. }
  115. ```
  116. `startActivity()` 的第二个参数InputData用来传递数据:
  117. ```
  118. String name; //姓名
  119. String idNum; //身份证
  120. FaceidSDK.VideoType videoType;//LIP数字模式,ACTION动作模式, SILENT静默模式
  121. ```
  122. > 以上参数被封装在 `FaceidSDK.InputData` 对象中。
  123. ## 接入示例
  124. 关于接口调用的示例可参考 [接入示例](#shili)
  125. <span id='canshu'></span>
  126. ## 接口参数说明
  127. | 参数 | 说明 | 类型 | 长度(字节) | 是否必填 |
  128. | --- | --- | --- | --- | --- |
  129. | name | 核验人的姓名| String | - | 是 |
  130. | idNum | 核验人的身份证号 | String | 32 | 是 |
  131. | videoType | 人脸核身类型<br/>动作活体:FaceidSDK.VideoType.ACTION<br/>数字活体:FaceidSDK.VideoType.LIP<br/>静默活体:FaceidSDK.VideoType.SILENT | FaceidSDK.VideoType | - | 是 |
  132. # 错误码