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

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