MrShi
2026-01-13 3a154bdb0a5aaa2c0ac3eac95a6ba747068bd454
keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/face/FaceSDKManager.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,140 @@
package com.doumee.keyCabinet.utils.face;
import android.content.Context;
import android.text.TextUtils;
import com.baidu.idl.main.facesdk.FaceAuth;
import com.baidu.idl.main.facesdk.callback.Callback;
import com.baidu.idl.main.facesdk.license.BDFaceLicenseAuthInfo;
import com.baidu.idl.main.facesdk.model.BDFaceSDKCommon;
import com.baidu.idl.main.facesdk.utils.PreferencesUtil;
import com.doumee.lib_coremodel.view.ToastView;
import com.example.datalibrary.listener.SdkInitListener;
import com.example.datalibrary.utils.ToastUtils;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FaceSDKManager {
    public static final int SDK_MODEL_LOAD_SUCCESS = 0;
    public static final int SDK_UNACTIVATION = 1;
    public static final int SDK_UNINIT = 2;
    public static final int SDK_INITING = 3;
    public static final int SDK_INITED = 4;
    public static final int SDK_INIT_FAIL = 5;
    public static final int SDK_INIT_SUCCESS = 6;
    public static volatile int initStatus = SDK_UNACTIVATION;
    private FaceAuth faceAuth;
    private FaceSDKManager() {
        faceAuth = new FaceAuth();
        faceAuth.setActiveLog(BDFaceSDKCommon.BDFaceLogInfo.BDFACE_LOG_TYPE_ALL, 1);
        faceAuth.setCoreConfigure(BDFaceSDKCommon.BDFaceCoreRunMode.BDFACE_LITE_POWER_NO_BIND, 2);
    }
    private static class HolderClass {
        private static final FaceSDKManager instance = new FaceSDKManager();
    }
    public static FaceSDKManager getInstance() {
        return HolderClass.instance;
    }
    /**
     * åˆå§‹åŒ–鉴权,如果鉴权通过,直接初始化模型
     *
     * @param context
     * @param listener
     */
    public void init(final Context context, final SdkInitListener listener) {
        PreferencesUtil.initPrefs(context.getApplicationContext());
        final String licenseOfflineKey = PreferencesUtil.getString("activate_offline_key", "");
        final String licenseOnlineKey = PreferencesUtil.getString("activate_online_key", "");
        final String licenseBatchlineKey = PreferencesUtil.getString("activate_batchline_key", "");
        // å¦‚æžœlicenseKey ä¸å­˜åœ¨æç¤ºæŽˆæƒç ä¸ºç©ºï¼Œå¹¶è·³è½¬æŽˆæƒé¡µé¢æŽˆæƒ
        if (TextUtils.isEmpty(licenseOfflineKey) && TextUtils.isEmpty(licenseOnlineKey)
                && TextUtils.isEmpty(licenseBatchlineKey)) {
            ToastView.show(context, "未授权设备,请完成授权激活");
            if (listener != null) {
                listener.initLicenseFail(-1, "授权码不存在,请重新输入!");
            }
            return;
        }
        if (listener != null) {
            listener.initStart();
        }
        if (!TextUtils.isEmpty(licenseOnlineKey)) {
            // åœ¨çº¿æ¿€æ´»
            faceAuth.initLicenseOnLine(context, licenseOnlineKey, new Callback() {
                @Override
                public void onResponse(int code, String response) {
                    if (code == 0) {
                        initStatus = SDK_INIT_SUCCESS;
                        if (listener != null) {
                            listener.initLicenseSuccess();
                        }
//                        initModel(context, listener);
                        return;
                    } else {
                        listener.initLicenseFail(code, response);
                    }
                }
            });
        } else if (!TextUtils.isEmpty(licenseOfflineKey)) {
            // ç¦»çº¿æ¿€æ´»
            faceAuth.initLicenseOffLine(context, new Callback() {
                @Override
                public void onResponse(int code, String response) {
                    if (code == 0) {
                        initStatus = SDK_INIT_SUCCESS;
                        if (listener != null) {
                            listener.initLicenseSuccess();
                        }
//                        initModel(context, listener);
                        return;
                    } else {
                        listener.initLicenseFail(code, response);
                    }
                }
            });
        } else if (!TextUtils.isEmpty(licenseBatchlineKey)) {
            // åº”用激活
            faceAuth.initLicenseBatchLine(context, licenseBatchlineKey, new Callback() {
                @Override
                public void onResponse(int code, String response) {
                    if (code == 0) {
                        PreferencesUtil.putString("activate_batchline_key", licenseBatchlineKey);
                        initStatus = SDK_INIT_SUCCESS;
                        if (listener != null) {
                            listener.initLicenseSuccess();
                        }
//                        initModel(context, listener);
                        return;
                    } else {
                        listener.initLicenseFail(code, response);
                    }
                }
            });
        } else {
            if (listener != null) {
                listener.initLicenseFail(-1, "授权码不存在,请重新输入!");
            }
        }
    }
    public String getLicenseData(Context context) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyå¹´MM月dd日");
        BDFaceLicenseAuthInfo bdFaceLicenseAuthInfo = faceAuth.getAuthInfo(context);
        Date dateLong = new Date(bdFaceLicenseAuthInfo.expireTime * 1000L);
        String dateTime = simpleDateFormat.format(dateLong);
        return dateTime;
    }
}