From 3a154bdb0a5aaa2c0ac3eac95a6ba747068bd454 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 13 一月 2026 10:00:37 +0800
Subject: [PATCH] 优化

---
 keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/face/FaceSDKManager.java |  140 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 140 insertions(+), 0 deletions(-)

diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/face/FaceSDKManager.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/utils/face/FaceSDKManager.java
new file mode 100644
index 0000000..ae6dbef
--- /dev/null
+++ b/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骞碝M鏈坉d鏃�");
+        BDFaceLicenseAuthInfo bdFaceLicenseAuthInfo = faceAuth.getAuthInfo(context);
+        Date dateLong = new Date(bdFaceLicenseAuthInfo.expireTime * 1000L);
+        String dateTime = simpleDateFormat.format(dateLong);
+        return dateTime;
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3