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