autojs指纹验证

效果展示

autojs指纹验证

环境

Autojs版本: 9.0.5

Android版本: 10.0.0

MIUI版本: 12.5.1

autojs9没有指纹验证权限, 需要用mt管理器在AndroidManifest.xml中添加权限

android.permission.USE_BIOMETRIC

你将学到以下知识点

  • 指纹验证
  • imgView更换颜色

代码讲解

1. 导入类

importClass("android.hardware.fingerprint.FingerprintManager");
importClass("android.os.CancellationSignal");
importClass("android.graphics.PorterDuff");

2. UI界面

ui.layout(
  <vertical>
    <text text="指纹验证" margin="0 0 0 10" textColor="#d9000000" textSize="35sp" w="*" gravity="center"></text>
    <text
      text="--牙叔教程 简单易懂"
      margin="0 0 0 10"
      textColor="#80000000"
      textSize="25sp"
      w="*"
      gravity="center"
    ></text>
    <frame w="*" h="*">
      <img id="img" layout_gravity="center" src="@drawable/ic_fingerprint_black_48dp" w="100dp" h="100dp"></img>
    </frame>
  </vertical>
);

3. 主逻辑

// 判断设备是否有指纹验证
let r = judgeFingerprintIsCorrect();
if (r) {
  log("开始指纹验证");
  let authenticationCallback = createAuthenticationCallback();
  mManager.authenticate(null, mCancellationSignal, 0, authenticationCallback, null);
}

4. 释放资源

ui.emitter.on("pause", function () {
  release();
});
function release() {
  if (mCancellationSignal != null) {
    mCancellationSignal.cancel();
    mCancellationSignal = null;
  }
}

5. 验证回调

function createAuthenticationCallback() {
  let mSelfCancelled = new FingerprintManager.AuthenticationCallback({
    onAuthenticationError: function (errorCode, errString) {
      //多次指纹密码验证错误后,进入此方法;并且,不可再验(短时间)
      //errorCode是失败的次数
      toastLog("尝试次数过多,请稍后重试");
    },

    onAuthenticationHelp: function (helpCode, helpString) {
      //指纹验证失败,可再验,可能手指过脏,或者移动过快等原因。
      toastLog("指纹验证失败");
      failureEffect(imgView);
    },

    onAuthenticationSucceeded: function (result) {
      toastLog("指纹验证成功");
      release();
      engines.myEngine().forceStop();
    },

    onAuthenticationFailed: function () {
      //指纹验证失败,指纹识别失败,可再验,错误原因为:该指纹不是系统录入的指纹。
      toastLog("指纹验证失败");
      failureEffect(imgView);
    },
  });
  return mSelfCancelled;
}

6. 判断是否有指纹验证

function judgeFingerprintIsCorrect() {
  if (!mFingerprintManager.isHardwareDetected()) {
    toastLog("没有指纹识别模块");
    return false;
  } else {
    log("有指纹识别模块");
  }

  if (!mKeyManager.isKeyguardSecure()) {
    toastLog("没有开启锁屏密码");
    return false;
  } else {
    log("有开启锁屏密码");
  }

  if (!mManager.hasEnrolledFingerprints()) {
    toastLog("没有指纹录入");
    return false;
  } else {
    log("有指纹录入");
  }
  return true;
}

名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, 安卓文档, autojs文档, 最后才是群里问问

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/procedure/28508.html

发表评论

登录后才能评论