| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- package com.dlc.exam.ui;
- import android.Manifest;
- import android.os.Bundle;
- import android.os.CountDownTimer;
- import android.view.View;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.appcompat.app.AlertDialog;
- import com.arcsoft.face.ActiveFileInfo;
- import com.arcsoft.face.ErrorInfo;
- import com.arcsoft.face.FaceEngine;
- import com.arcsoft.face.enums.RuntimeABI;
- import com.blankj.utilcode.util.ActivityUtils;
- import com.blankj.utilcode.util.AppUtils;
- import com.blankj.utilcode.util.LogUtils;
- import com.dlc.exam.common.Constants;
- import com.dlc.exam.databinding.ActivityStartBinding;
- import com.dlc.exam.ui.settings.PasswordDialog;
- import com.dlc.exam.ui.settings.SettingsActivity;
- import com.rc.core.ui.activity.RcBaseActivity;
- import com.tbruyelle.rxpermissions2.RxPermissions;
- import io.reactivex.disposables.Disposable;
- import kotlin.Unit;
- import kotlin.jvm.functions.Function0;
- public class StartActivity extends RcBaseActivity<ActivityStartBinding> {
- private ActivityStartBinding binding;
- @NonNull
- @Override
- protected ActivityStartBinding createViewBinding() {
- return binding = ActivityStartBinding.inflate(getLayoutInflater());
- }
- @Override
- protected void initViews(@Nullable Bundle savedInstanceState) {
- super.initViews(savedInstanceState);
- binding.versionName.setText(AppUtils.getAppVersionName());
- // binding.firm.setOnLongClickListener(new View.OnLongClickListener() {
- // @Override
- // public boolean onLongClick(View v) {
- // new PasswordDialog(StartActivity.this, new Function0<Unit>() {
- // @Override
- // public Unit invoke() {
- // ActivityUtils.startActivity(SettingsActivity.class);
- // finish();
- // return null;
- // }
- // }).show();
- // return true;
- // }
- // });
- requestPermission();
- }
- private CountDownTimer activeTimer;
- private void requestPermission() {
- Disposable disposable = new RxPermissions(this).request(Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.CAMERA,
- Manifest.permission.READ_PHONE_STATE,
- Manifest.permission.RECORD_AUDIO).subscribe(aBoolean -> {
- if (aBoolean) {
- activeTimer = new CountDownTimer(1000, 1000) {
- @Override
- public void onTick(long millisUntilFinished) {
- }
- @Override
- public void onFinish() {
- if (activeOnlineFaceEngine()) {
- activeTimer.cancel();
- activeTimer = null;
- binding.main.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- finish();
- ActivityUtils.startActivity(MainActivity.class);
- }
- });
- } else {
- activeTimer.start();
- }
- }
- };
- activeTimer.start();
- } else {
- new AlertDialog.Builder(StartActivity.this)
- .setTitle("提示")
- .setMessage("您必须同意所有权限才可以继续使用")
- .setNegativeButton("确定", (dialog, which)
- -> requestPermission())
- .show();
- }
- });
- addDisposable(disposable);
- }
- private boolean activeOnlineFaceEngine() {
- RuntimeABI runtimeABI = FaceEngine.getRuntimeABI();
- LogUtils.d("虹软", runtimeABI);
- ActiveFileInfo activeFileInfo = new ActiveFileInfo();
- int res = FaceEngine.getActiveFileInfo(this, activeFileInfo);
- if (res == ErrorInfo.MOK) {
- LogUtils.json(activeFileInfo);
- return true;
- } else {
- int code = FaceEngine.activeOnline(this, Constants.ArcFace.APP_ID, Constants.ArcFace.SDK_KEY);
- LogUtils.d("虹软激活", code);
- if (ErrorInfo.MOK == code || code == ErrorInfo.MERR_ASF_ALREADY_ACTIVATED) {
- showToast("人脸引擎已激活");
- return true;
- } else {
- showToast("人脸引擎激活失败!" + code);
- }
- }
- return false;
- }
- }
|