生态文档
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

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

4 年前
4 年前
4 年前
4 年前
4 年前
4 年前
4 年前
4 年前
4 年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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. // 公共aar
  26. implementation(name: 'cepm_common', ext: 'aar')
  27. // 活体核身
  28. implementation(name: 'faceidsdk', ext: 'aar')
  29. }
  30. ```
  31. ### 权限检测
  32. 在AndroidManifest.xml中添加
  33. ```
  34. <uses-permission android:name="android.permission.INTERNET" />
  35. <uses-permission android:name="android.permission.CAMERA" />
  36. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  37. <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  38. ```
  39. - **Android 6.0 以上系统**
  40. SDK 需要用到网络/相机/录音/写入手机存储权限,对 Android 6.0 以上的系统会做权限的运行时检测。
  41. - **Android 6.0 以下系统**
  42. 由于 Android 6.0 以下系统 Android 并没有运行时权限检测,建议调用方在拉起 SDK 前,对网络/相机/麦克风/写入手机存储检测。
  43. ## 混淆配置
  44. <span id='shili'></span>
  45. # 接入示例
  46. 视频核身:
  47. ```
  48. # 在MainActivity中单击某个按钮的代码逻辑
  49. FaceidSDK.InputData inputdata=FaceidSDK.getInstance().new InputData(name.getText().toString(),idNum.getText().toString(), videoType);
  50. Credential credential = new Credential();
  51. credential.setSysName("XXXX").setPassword("XXXX").setUserCode("XXXX").setUrl("https://cepmtest.dhcccloud.com.cn/gateway");
  52. FaceidSDK.getInstance().init(MainActivity.this, credential,new FaceidSDK.FaceidLoginListener() {
  53. @Override
  54. public void onLoginSuccess() { //登录成功,拉起 SDK 页面
  55. FaceidSDK.getInstance().startActivity(MainActivity.this,inputdata, new FaceidSDK.FaceidResultListener() {
  56. @Override
  57. public void onFailed(String errorCode, String errorMsg) {
  58. txtresult.setText("失败:错误码"+errorCode+";错误信息"+errorMsg);
  59. }
  60. @Override
  61. public void onFinish(FaceidSDK.OutputData result) {
  62. txtresult.setText("操作完成:识别结果"+result.isSuccess()+";相似分数"+result.getScore());
  63. }
  64. });
  65. }
  66. @Override
  67. public void onLoginFailed(String errorCode, String errorMsg) {
  68. }
  69. });
  70. ```
  71. [完整demo下载](./demo/faceidsdkdemo.rar) (跳转后点击查看**原始文件**)
  72. # 接口详细说明
  73. ## SDK 接口调用方法
  74. SDK 代码调用的入口为 `FaceidSDK` 这个类。
  75. ```
  76. public class FaceidSDK {
  77. /**
  78. * 该类为一个单例,需要先获得单例对象再进行后续操作
  79. */
  80. public static FaceidSDK getInstance(){
  81. // ...
  82. }
  83. /**
  84. * 在使用SDK前先初始化,
  85. * 传入证书key `credential`,
  86. * 由 FaceidLoginListener返回是否初始化SDK成功
  87. */
  88. public void init(Context context,Credential credential, FaceidLoginListener loginListerner){
  89. // ...
  90. }
  91. /**
  92. * 初始化成功后,调用此函数拉起sdk页面。
  93. * 传入InputData(身份证,姓名,动作类型)
  94. * 由FaceidResultListener返回人脸核身结果。
  95. */
  96. public void startActivity(Context context, InputData data,FaceidResultListener resultListener) {
  97. // ...
  98. }
  99. /**
  100. * 初始化回调接口
  101. */
  102. public interface FaceidLoginListener {
  103. void onLoginSuccess();
  104. void onLoginFailed(String errorCode, String errorMsg);
  105. }
  106. /**
  107. * 人脸核身结果回调接口
  108. */
  109. public interface FaceidResultListener{
  110. void onFailed(String errorCode, String errorMsg);
  111. void onFinish(OutputData result);
  112. }
  113. ```
  114. `startActivity()` 的第二个参数InputData用来传递数据:
  115. ```
  116. String name; //姓名
  117. String idNum; //身份证
  118. FaceidSDK.VideoType videoType;//LIP数字模式,ACTION动作模式, SILENT静默模式
  119. ```
  120. > 以上参数被封装在 `FaceidSDK.InputData` 对象中。
  121. ## 接入示例
  122. 关于接口调用的示例可参考 [接入示例](#shili)
  123. <span id='canshu'></span>
  124. ## 接口参数说明
  125. | 参数 | 说明 | 类型 | 长度(字节) | 是否必填 |
  126. | --- | --- | --- | --- | --- |
  127. | name | 核验人的姓名| String | - | 是 |
  128. | idNum | 核验人的身份证号 | String | 32 | 是 |
  129. | videoType | 人脸核身类型<br/>动作活体:FaceidSDK.VideoType.ACTION<br/>数字活体:FaceidSDK.VideoType.LIP<br/>静默活体:FaceidSDK.VideoType.SILENT | FaceidSDK.VideoType | - | 是 |
  130. # 错误码