| 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; | 
|     } | 
| } |