CertificationModule.java 2.19 KB

package com.feewee.aliface;

import android.util.Base64;

import com.alibaba.security.aligreenv2.AligreenSdkManager;
import com.alibaba.security.aligreenv2.BiometricsDetectListener;
import com.alibaba.security.aligreenv2.model.BiometricsConfig;
import com.alibaba.security.aligreenv2.model.BiometricsResult;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.WritableMap;

public class CertificationModule extends ReactContextBaseJavaModule {

  public CertificationModule(ReactApplicationContext reactContext) {
    super(reactContext);
  }

  @Override
  public String getName() {
    return "FwRnAliFace";
  }

  @ReactMethod
  public void start(Callback callback){
    //基于BiometricsConfig.Builder构造配置示例并进行参数设置
    BiometricsConfig.Builder bioConfigBuilder = new BiometricsConfig.Builder();
//    bioConfigBuilder.setActionCount(2); // 设置动作个数
    bioConfigBuilder.setShowTutorial(true); // 是否显示导航(预备)页
    bioConfigBuilder.setRecapThreshold(1.0f); // 翻拍检测阈值(阈值越大意味着越宽松)

    // 调用活体识别接口
    AligreenSdkManager.getInstance().startBiometricsDetect(super.getReactApplicationContext(), bioConfigBuilder.build(), new BiometricsDetectListener() {
      @Override
      public void onStart() {
        // 开始人脸采集
      }

      @Override
      public void onShow() {
        // 活体识别页面显示
      }

      @Override
      public void onDismiss() {
        // 活体识别页面关闭
      }

      @Override
      public void onFinish(BiometricsResult result) {
        // 集成成功
        if (result != null && result.getCode() == 0) {
          // 人脸采集结束
          WritableMap map = Arguments.createMap();
          System.out.println();
          map.putString("image", Base64.encodeToString(result.getBigImageData(), Base64.DEFAULT));
          map.putInt("code", result.getCode());
          callback.invoke(map);
        }
      }
    });
  }
}