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/ui/face/OfflineActivationActivity.java | 233 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 233 insertions(+), 0 deletions(-)
diff --git a/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/OfflineActivationActivity.java b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/OfflineActivationActivity.java
new file mode 100644
index 0000000..4f52855
--- /dev/null
+++ b/keyCabinet-android/app/src/main/java/com/doumee/keyCabinet/ui/face/OfflineActivationActivity.java
@@ -0,0 +1,233 @@
+package com.doumee.keyCabinet.ui.face;
+
+import androidx.annotation.Nullable;
+
+import android.app.DownloadManager;
+import android.content.BroadcastReceiver;
+import android.content.ClipboardManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Environment;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.Toast;
+
+import com.baidu.idl.main.facesdk.FaceAuth;
+import com.baidu.idl.main.facesdk.callback.Callback;
+import com.doumee.keyCabinet.MApplication;
+import com.doumee.keyCabinet.R;
+import com.doumee.keyCabinet.base.MyBaseActivity;
+import com.doumee.keyCabinet.databinding.OfflineActivationActivityBinding;
+import com.doumee.keyCabinet.event.TimeClockEvent;
+import com.doumee.keyCabinet.utils.LMobileInfo;
+import com.doumee.keyCabinet.utils.update.FileUtil;
+import com.doumee.lib_coremodel.view.ToastView;
+import com.example.datalibrary.utils.FileUtils;
+import com.example.datalibrary.utils.ToastUtils;
+
+import org.greenrobot.eventbus.Subscribe;
+
+import dagger.hilt.android.AndroidEntryPoint;
+
+@AndroidEntryPoint
+public class OfflineActivationActivity extends MyBaseActivity<OfflineActivationVM, OfflineActivationActivityBinding> implements View.OnClickListener {
+ private FaceAuth faceAuth;
+ private boolean isDownLoad;
+ String filePath = Environment.getExternalStorageDirectory().getPath()+"/License.zip";
+
+ @Override
+ public int getLayoutId() {
+ return R.layout.offline_activation_activity;
+ }
+
+ @Override
+ public void initView(@Nullable Bundle savedInstanceState) {
+ isToGuild = false;
+ normalConfig();
+ getDB().setModel(getVM());
+ }
+
+ @Override
+ public void initData(@Nullable Bundle savedInstanceState) {
+ getDB().tvId.setText("NO锛�"+ LMobileInfo.getDeviceUniqueId());
+
+ // 澶嶅埗鎸夐挳
+ faceAuth = new FaceAuth();
+ String a = faceAuth.getDeviceId(this);
+ getDB().accreditDeviceTv.setText(a);
+
+ // 闀挎寜鐐瑰嚮澶嶅埗
+ getDB().accreditDeviceTv.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View view) {
+ ClipboardManager clipboardManager = (ClipboardManager)
+ getSystemService(Context.CLIPBOARD_SERVICE);
+ clipboardManager.setText(getDB().accreditDeviceTv.getText());
+
+ ToastUtils.toast(OfflineActivationActivity.this, "deviceID 澶嶅埗鎴愬姛");
+ return false;
+ }
+ });
+
+ getDB().accreditOffBtn.setOnClickListener(this);
+ getDB().btnDown.setOnClickListener(this);
+ setupDownloadManager();
+ setupDownloadReceiver();
+ }
+
+ @Subscribe
+ public void TimeClockEvent(TimeClockEvent e){
+ if(!isFinishing()){
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ updateDownStatus();
+ }
+ });
+ }
+ }
+
+ private void updateDownStatus(){
+ if(isDownLoad){
+ return;
+ }
+ //鍏堟牎楠屾槸鍚︽湁涓嬭浇璺緞
+ if(!TextUtils.isEmpty(MApplication.getConfigBean().getActivateFileUrl())){
+ if(FileUtil.FileIsExist(filePath)) {
+ //鏂囦欢瀛樺湪
+ getDB().btnDown.setText("閲嶆柊涓嬭浇婵�娲绘枃浠�");
+ getDB().btnDown.setClickable(true);
+ getDB().btnDown.setBackgroundResource(R.mipmap.btn_main_normal);
+
+ getDB().accreditOffBtn.setClickable(true);
+ getDB().accreditOffBtn.setBackgroundResource(R.mipmap.btn_main_normal);
+ }else {
+ getDB().btnDown.setText("涓嬭浇婵�娲绘枃浠�");
+ getDB().btnDown.setClickable(true);
+ getDB().btnDown.setBackgroundResource(R.mipmap.btn_main_normal);
+
+ getDB().accreditOffBtn.setClickable(false);
+ getDB().accreditOffBtn.setBackgroundResource(R.mipmap.btn_less_normal);
+ }
+ }else {
+ //鍒犻櫎婵�娲绘枃浠�
+ FileUtils.deleteFile(filePath);
+ getDB().btnDown.setText("寰呭悗鍙颁笂浼犳縺娲绘枃浠�");
+ getDB().btnDown.setClickable(false);
+ getDB().btnDown.setBackgroundResource(R.mipmap.btn_less_normal);
+
+ getDB().accreditOffBtn.setClickable(false);
+ getDB().accreditOffBtn.setBackgroundResource(R.mipmap.btn_less_normal);
+ }
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.btn_down:
+ //涓嬭浇鎸夐挳
+ if(isDownLoad){
+ ToastView.show(MApplication.mContext,"涓嬭浇涓�...");
+ return;
+ }
+ if(!TextUtils.isEmpty(MApplication.getConfigBean().getActivateFileUrl())){
+ isDownLoad = true;
+ startDownload(MApplication.getConfigBean().getActivateFileUrl());
+ }
+ break;
+ // 绂荤嚎婵�娲�
+ case R.id.accredit_offBtn:
+ faceAuth.initLicenseOffLine(this, new Callback() {
+ @Override
+ public void onResponse(final int code, final String response) {
+ if (code == 0) {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ // 鎺堟潈鎴愬姛璺宠浆鍔熻兘鍏ュ彛椤甸潰
+ getDB().accreditHintTv.setText("");
+ finish();
+ }
+ });
+ } else {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ if (code == 7) {
+ getDB().accreditHintTv.setText("婵�娲诲け璐ワ紝璁惧纭欢鎸囩汗涓嶭icense.zip涓嶇");
+ } else if (code == 11) {
+ getDB().accreditHintTv.setText("婵�娲诲け璐ワ紝License.zip鏂囦欢瀵瑰簲鐨勫簭鍒楀彿涓嶅湪鏈夋晥鏈熻寖鍥村唴");
+ } else if (code == -1) {
+ getDB().accreditHintTv.setText("鏈娴嬪埌License.zip鏂囦欢");
+ } else if (code == 14) {
+ getDB().accreditHintTv.setText("婵�娲诲け璐ワ紝License.zip鏂囦欢瀵瑰簲鐨勫簭鍒楀彿涓嶅湪鏈夋晥鏈熻寖鍥村唴");
+ } else if (code == 4) {
+ getDB().accreditHintTv.setText("婵�娲诲け璐ワ紝璁惧纭欢鎸囩汗涓嶭icense.zip涓嶇");
+ } else {
+ getDB().accreditHintTv.setText(code);
+ }
+ }
+ });
+
+ }
+ }
+ });
+ break;
+ }
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ if (downloadReceiver != null) {
+ unregisterReceiver(downloadReceiver);
+ }
+ }
+
+ private BroadcastReceiver downloadReceiver;
+ private DownloadManager downloadManager;
+ private long downloadId;
+
+ private void setupDownloadManager() {
+ downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
+ }
+
+
+ private void startDownload(String url) {
+ try {
+ DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
+
+ // 璁剧疆涓嬭浇鍙傛暟
+ request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
+ request.setTitle("鏂囦欢涓嬭浇");
+ request.setDescription("姝e湪涓嬭浇鏂囦欢...");
+ request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
+ request.setDestinationInExternalPublicDir("", "License.zip");
+
+ // 寮�濮嬩笅杞�
+ downloadId = downloadManager.enqueue(request);
+ Toast.makeText(mContext, "涓嬭浇宸插紑濮�", Toast.LENGTH_SHORT).show();
+
+ } catch (Exception e) {
+ isDownLoad = false;
+ Toast.makeText(this, "涓嬭浇澶辫触: " + e.getMessage(), Toast.LENGTH_LONG).show();
+ }
+ }
+
+ private void setupDownloadReceiver() {
+ downloadReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive (Context context, Intent intent){
+ long id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
+ if (id == downloadId) {
+ isDownLoad = false;
+ Toast.makeText(context, "鏂囦欢涓嬭浇瀹屾垚", Toast.LENGTH_LONG).show();
+ }
+ }
+ };
+ registerReceiver(downloadReceiver,new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3