内容安全提供离线的、基于手机端的人脸活体检测功能。您可以通过离线SDK将活体检测集成到APP中,实时获取被检测对象的动作状态,如眼睛、嘴巴、头部等姿态。集成活体检测SDK后,客户APP可以指示用户完成相关动作,从而判断对象是否为活体。

获取SDK及授权

您需要在内容安全控制台上传需要集成SDK的APP,才能获取相应SDK及授权。参照以下步骤,获取SDK及授权:
  1. 登录云盾内容安全控制台
  2. 前往设置 > 活体检测页。
  3. 单击添加应用

  4. 新增应用包对话框中,上传要集成活体检测SDK的APK包。
    说明 请确保APK包已经有正确的签名。


    上传APK包后,您可以获得对应的SDK包,该SDK包中已包含相应授权。

    每个新应用默认有1天的免费SDK使用期,过期后请联系客户经理或以工单形式联系我们进行续费。一个UID最多支持上传10个应用。

集成Android SDK

参照以下步骤将Android SDK集成到您的应用中:
  1. 在工程中导入SDK。解压liveness_sdk_xxx.zip,将以下Android依赖包引入到您的应用工程中。
    • aar依赖文件
      aligreen-release-1.0.1.aar
      FaceLivenessOpen-1.1.6.11.aar
      NoCaptchaSDK-external-release-5.4.26.aar
      SecurityBodySDK-external-release-5.4.66.aar
      SecurityGuardSDK-external-release-5.4.94.aar
      1. 按如下方式配置gradle
        repositories {
                flatDir {
                    dirs '../libs'
                }
            }
      2. 设定引入的本地库所在路径。将需要引入的依赖包都放在../libs目录,包含所有需要的库。
      3. gradle文件中引入以下需要的库依赖:
        compile (name:'aligreen-release-1.0.1',ext:'aar')
            compile (name:'FaceLivenessOpen-1.1.6.11',ext:'aar')
            compile (name:'NoCaptchaSDK-external-release-5.4.26',ext:'aar')
            compile (name:'SecurityBodySDK-external-release-5.4.66',ext:'aar')
            compile (name:'SecurityGuardSDK-external-release-5.4.94',ext:'aar')
    • yw_1222_xxx.jpg
      1. 把该图片文件导入到工程中的res\drawable\目录。
        说明 如果没有这个文件夹,请先在工程中创建,否则将无法正常工作。
      2. 如果在安卓工程打包时启用了shrinkResources true,还需要在keep.xml文件中添加以下内容:
        <resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@drawable/yw_1222_*"/>
    • aligreen-license.bin
      把该文件导入到工程中的assets目录。
      说明 如果没有这个文件夹,请先在工程中创建,否则将无法完成初始化。
    • 关于权限
      SDK的使用需要添加以下权限:
      • <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      • <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
      • <uses-permission android:name="android.permission.CAMERA" />
  2. 使用SDK。
    1. 启动应用后,执行以下操作:
      import com.alibaba.security.aligreenv2.AligreenSdkManager;
      AligreenSdkManager.getInstance().init(appContext);
    2. 执行以下操作进行人脸采集。
      /**
      * 此接口固定采集两个动作的照片
      *
      * @param isAutoCollect boolean类型 是否开启活体自动采集
      */
      AligreenSdkManager.getInstance().startFaceLiveness(Context, isAutoCollect, callback);
      
      /**
      * 此接口可选择静默式活体(无动作)或是采集一个活体动作照片或是采集两个活体动作照片
      *
      * @param actionCount int类型 动作个数,可选范围(0,1,2)
      * @param isAutoCollect boolean类型 是否开启活体自动采集
      */
      AligreenSdkManager.getInstance(). startFaceLivenessWithAction(Context, actionCount, isAutoCollect, callback);
      说明 采集人脸中包含耗时操作,建议您不要在主线程中执行,否则会导致采集失败。
    3. 获取人脸结果。您可以在callbackonFinish方法中获取采集结果。

集成iOS SDK

参照以下步骤将iOS SDK集成到您的应用中:
  1. 在应用工程中导入SDK
    解压离线活体SDK-IOS.zip压缩包,将以下Framework依赖包引入您的应用工程:
    1. 关于Framework依赖文件的操作
      1. 导入以下Framework依赖文件:
        • Aligreen.framework
        • FaceLivenessOpen.framework
        • SGMain.framework
        • SGNoCaptcha.framework
        • SecurityGuardSDK.framework
        • SGSecurityBody.framework
      2. 确认您的工程中已包含以下系统依赖:
        • MediaPlayer.framework
        • CoreMedia.framework
        • WebKit.framework
        • CoreMotion.framework
        • SystemConfiguration.framework
        • CoreLocation.framework
        • CoreTelephony.framework
        • libc++.tbd
        • libz.tbd
    2. 关于yw_1222_xxx.jpg,aligreen-license.bin以及FaceLivenessSDK.bundle文件的操作
      1. 将这三个资源文件导入应用工程中。
      2. 导入完成后,确认在Build Phases的Copy Bundle Resources中已存在这些资源文件。
    3. 关于权限的操作

      在应用的info.plist中添加Privacy - Photo Library Additions Usage Description和Privacy - Camera Usage Description权限。

    4. 关于编译选项

      在应用工程的Other Linker Flags选项中添加-ObjC。

  2. 使用SDK
    1. 在应用启动时添加SDK调用:
      #import <Aligreen/AligreenSdkManager.h>
      [AligreenSdkManager setup] 
    2. 进行人脸采集:
      /**
      * 此接口固定采集两个动作的照片
      *
      * @param isAutoCollect boolean类型 是否开启活体自动采集
      */
      [AligreenSdkManager startFaceLiveness:(bool)isAutoCollect withCallback:(id<FaceImageResultCallback>)faceImageResultCallback withVC:(UIViewController *)vc];
      
      /**
      * 此接口可选择静默式活体(无动作)或是采集一个活体动作照片或是采集两个活体动作照片
      *
      * @param actionCount int类型 动作个数,可选范围(0,1,2)
      * @param isAutoCollect boolean类型 是否开启活体自动采集
      */
      [AligreenSdkManager startFaceLivenessWithActionCount:(int)actionCount isAutoCollect:(bool)isAutoCollect withCallback:(id<FaceImageResultCallback>)faceImageResultCallback withVC:(UIViewController *)vc];
    3. 获取人脸结果:

      在callback的onFinish方法中获取人脸采集结果。

错误码说明

错误信息 错误代码 说明
SDK_NOT_INIT -1001 SDK未初始化
GET_LICENSE_ERROR -1002 获取服务端License失败
LICENSE_EXPIRED -1003 License已过期
LICENSE_NOT_RIGHT -1004 License不正确
ACTION_COUNT_TOO_LARGE -1005 执行动作数量超标
说明 最多执行两个动作。
ERROR_LICENSE 5000 授权错误
ERROR_LICENSE_INPUT 5001 输入参数有误,例如env、ctx、licenseData参数为空等
ERROR_LICENSE_DATA_FORMAT 5002 licenseData参数格式错误
ERROR_LICENSE_SIGN 5003 签名校验失败
ERROR_LICENSE_APKPKG 5004 包名称校验失败
ERROR_LICENSE_PUBKEY 5005 公钥校验失败
ERROR_LICENSE_EXPIRE 5006 授权过期
ERROR_LICENSE_NOT_CHECK 5007 未执行授权检查
ERROR_LICENSE_BUNDLEID 5008 iOS BundleID校验错误
ERROR_LICENSE_CLIENT_ID 5009 终端标识校验错误
ERROR_LICENSE_EXPIRE_DATE_MODIFIED 5010 授权过期且日期被修改