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.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)) { ToastUtils.toast(context, "未授权设备,请完成授权激活"); if (listener != null) { listener.initLicenseFail(-1, "授权码不存在,请重新输入!"); } return; } // todo 增加判空处理 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; } }